aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/tools')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/agda-pkg/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/alloy/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/alloy/icon.pngbin0 -> 17154 bytes
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ameba/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ammonite/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/autoflake/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/cccc.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coan/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cov-build/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coz/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/emma/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/findbugs/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/flow/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/gcc7.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix67
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/ikos/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/oclgrind/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pev/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix133
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/update.py153
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/default.nix236
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/yaracpp.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/snowman/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/sparse/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/spin/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/darwin.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/tmpdir.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valkyrie/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/apktool/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/asn2quickder/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/async/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/avro-tools/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/azcopy/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/use-go-in-path.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bazelisk/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/bloaty/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/boomerang/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/boost-build/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/alibuild/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix112
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/builder.sh18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/arpa2cm/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix388
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/glibc.patch78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/python-stub-path-fix.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix564
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/glibc.patch78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/src-deps.json506
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix565
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/glibc.patch78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/src-deps.json506
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix584
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json781
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_rc.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/nix-hacks.patch43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix154
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/shebang-test.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/strict_action_env.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch37
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/cmakepaths.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/bootstrap-fix.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/pex-mtime.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/2.8.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/3.2.2-cygwin.patch274
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix128
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path-2.8.patch92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch74
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh178
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/colormake/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/doit/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile.lock15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/gemset.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch802
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/setup-hook.sh14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch170
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix85
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/icmake/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/version.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/builder.sh4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/default.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix133
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/nuget.nix1130
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/setup-hook.sh78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/pants/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile.lock13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/gemset.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix135
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap267
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/samurai/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/setup-hook.sh44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/buildah/default.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/buildah/wrapper.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/buildkit/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/buildpack/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile.lock19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cadre/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cadre/gemset.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cargo-web/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cask/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/castxml/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/gemset.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile.lock30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cddl/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cddl/gemset.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/cdecl-2.5-lex.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/check/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/check/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock726
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/gemset.nix2456
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/chit/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clj-kondo/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/clog-cli/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/deps.nix219
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cmake-format/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile.lock31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compass/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compass/gemset.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/deps.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/conftest/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix24
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/update.sh22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corgi/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corgi/deps.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile.lock56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corundum/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/corundum/gemset.nix154
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/coursier/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cppclean/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/gemset.nix114
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/cue/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dapper/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dapr/cli/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/cdb/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/deps.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/liquibase/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/litecli/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/pgcli/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/pyrseas/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/shmig/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/database/webdis/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dcadec/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/deadcode/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/deis/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/deisctl/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/delve/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dep/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/deps.nix129
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/detect-secrets/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/devd/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/devpi-client/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/devpi-server/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/devtodo/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch1589
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/default.nix76
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/update-cargo-lock.sh19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/distgen/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dive/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/doctl/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/antora/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mkdocs/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dot-http/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/drip/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/drm_info/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dt-schema/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/dtools/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/easyjson/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix119
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile.lock54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ejson/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ejson/gemset.nix188
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/electron/default.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/electron/generic.nix86
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/electron/print-hashes.sh33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/eliot-tree/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fac/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fac/deps.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fdroidserver/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/fix-paths.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flamegraph/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix155
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch151
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-paths.patch111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flock/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flootty/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/flyway/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fmbt/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/galen/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gamecube-tools/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gauge/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gdm/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gdm/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch1846
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ghp-import/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ginkgo/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gir/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/git-ftp/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/git-repo-updater/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/git-series/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile.lock49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/gemset.nix155
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/deps.nix102
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github/cligh/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/github/github-release/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glade/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glide/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gllvm/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glock/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glock/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glpaper/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/glslviewer/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gnome-desktop-testing/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gnulib/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-junit-report/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-langserver/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-migrate/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-motion/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-protobuf/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-swag/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-swagger/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-task/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-toml/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go-tools/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/goa/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/goa/deps.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gocode/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gocode/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/goconst/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gocyclo/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godef/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godot/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godot/headless.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/godot/server.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gofumpt/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gogetdoc/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/golangci-lint/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/golint/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/golint/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gomodifytags/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gomplate/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gopls/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gore/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gosec/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gotags/default.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gotests/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gotests/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gotestsum/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gotools/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/govendor/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/govers/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gox/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gpp/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/grabserial/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gron/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gron/deps.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/gtk-mac-bundler/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/guile/guile-lint/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/halfempty/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix32
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix60
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/custom-config.patch49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/vaultenv/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/hcloud/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/heroku/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/hexio/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/hobbes/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/iaca/2.1.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/iaca/3.0.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/icestorm/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/icr/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/icr/shards.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/iferr/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/imatix_gsl/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/impl/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/impl/deps.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ineffassign/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/deps.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/irony-server/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/java/cfr/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/java/dex2jar/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/java/fastjar/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/java/jhiccup/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/java/visualvm/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock109
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/gemset.nix434
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jbake/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jd/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jid/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jid/deps.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jira_cli/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jl/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jmespath/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jo/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jp/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jpexs/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jq/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile.lock23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/gemset.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/jtc/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/just/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/k6/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kafkacat/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kcli/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kexpand/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kind/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/scas/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ktlint/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kube-aws/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/deps.nix309
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kubectx/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kubeprompt/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kubicorn/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kubie/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kustomize/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/kythe/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix116
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/lazygit/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/leaps/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/leaps/deps.nix165
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/libsigrok/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/libsigrokdecode/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/makerpm/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/maligned/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/maligned/deps.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/manul/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/manul/deps.nix75
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mbed-cli/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mdk/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/metals/default.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/micronaut/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/ide.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/act/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/argbash/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/asls/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/astyle/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.64.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/autogen/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.11.x.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.15.x.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.16.x.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/builder.sh47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-perl-5.26.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-test-autoconf-2.69.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/help2man-SOURCE_DATE_EPOCH-support.patch41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/setup-hook.sh5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/automoc4/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/awf/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/babeltrace/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bin_replace_string/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch517
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch137
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch583
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/always-search-rpath.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/build-components-separately.patch178
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/default.nix172
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/deterministic.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/gold-symbol-visibility.patch79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/no-plugins.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/support-ios.patch168
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix69
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bin2c.c122
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bossa-no-applet-build.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/bsdbuild/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/backslashes-quotes.diff49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccache/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/wrapper12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cflow/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby-fish/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/env.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.upstream2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cli11/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/complexity/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cppi/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/creduce/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cscope/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/csmith/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/wrapped.nix78
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/fix-missing-stdint.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/gcc44.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-util/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/dialog/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/direvent/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/default.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/masq.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/drush/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/eggdbus/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/epm/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/darwin-target-match.patch11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/debug-info-from-env.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/default.nix111
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gede/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/global/default.nix59
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/darwin-secure-format.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/s_isdir.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gob2/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/gperf-ar-fix.patch46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gputils/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/bench.patch60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/1.40.4-cygwin-nls.patch165
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/hound/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/common.nix136
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/icon-naming-utils/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/igprof/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/darwin.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/inotify-tools/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/intel-gpu-tools/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/intltool/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/iozone/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch321
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/itstool/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/jsfalse_to_null.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix63
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check-7.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lit/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/loccount/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/no-build-info.patch43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-ust/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttv/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.upstream1
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/luarocks-nix.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/setup-hook.sh16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/md2man/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/gemset.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/msitools/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ninka/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/objconv/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile.lock17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/gemset.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/openocd/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pahole/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/setup-hook.sh22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/2.36.3-not-win32.patch324
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/requires-private.patch17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/getopt_on_darwin.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/prelink/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/3.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/5.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/setup-hook.sh19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ptags/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/replacement/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/rman/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix97
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/preload.c341
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/scc/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/sccache/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/semver-tool/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/sipp/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/srecord/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/stlink/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/strace/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/svls/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/2.x.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/3.x.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/4.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/teensy-loader-cli/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tet/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/5.2.nix4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.5.nix4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix81
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/texlab/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tie/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/tokei/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile4
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock71
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix269
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/shell.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/uisp/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/sed-test.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch283
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile.lock15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/gemset.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/xc3sprog/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix99
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/misc/yodl/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mockgen/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mod/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/modd/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mpfshell/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/msgpack-tools/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/mustache-go/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/nailgun/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/nemiver/default.nix88
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/neoload/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/nrpl/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/nsis/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/nwjs/default.nix95
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/default.nix61
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/install_topfind.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/ldconf.patch8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/fix-paths.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/oasis/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obuild/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlbuild/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix116
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlify/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/warn.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix92
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix120
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam-shebangs.patch128
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl131
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/omniorb/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/operator-sdk/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/oq/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/osslsigncode/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/out-of-tree/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile.lock17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/default.nix15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/gemset.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/packer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/packet-cli/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/packet/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/packet/deps.nix156
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pandoc/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.4.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.5.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/4.7.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/builder.sh23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bison/default.nix46
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.6.1.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/hammer/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/peg/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/library.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pax-rs/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pet/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pew/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pgformatter/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pgloader/default.nix38
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs/default.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/default.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/system-qtbase.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/deps.nix66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pipenv/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/README.md6
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/bin/poetry2nix103
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/cli.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix383
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/extensions.json15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix68
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix211
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix170
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix1196
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix105
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix255
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock1419
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml115
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json7
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix70
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix87
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix41
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/update31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/postiats-utilities/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pretty-simple/default.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/EZTrace/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix54
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/deps.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix80
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix60
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/prospector/default.nix74
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/proto-contrib/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/prototool/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile.lock17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pry/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pry/gemset.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pup/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile5
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/default.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/gemset.nix10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/default.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix43
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/update.sh33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pxview/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pydb/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/pypi2nix/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/default.nix96
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/deps.nix12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/quilt/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rdbtools/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rdocker/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rebazel/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/.bundle/config3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/gemset.nix53
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/reflex/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/reftools/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/remarshal/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/renderizer/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/reno/default.nix58
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rep/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rgp/default.nix76
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/richgo/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile.lock19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ronn/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ronn/gemset.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rq/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rshell/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rtags/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/gemset.nix84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rucksack/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/run/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rund/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix66
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/wrapper.sh36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/cargo-lock.patch318
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix54
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/update-cargo-lock.sh19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch780
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch10
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/maturin/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/racer/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/racerd/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix14
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/downgrade-smol_str.patch82
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch223
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-match-unsizing-in-const-fn.patch30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-track_env_var.patch120
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh64
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/wrapper.nix16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/default.nix79
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch283
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile.lock21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sass/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sass/gemset.nix55
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sassc/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sauce-connect/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scaff/default.nix26
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scalafix/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scalafmt/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scry/default.nix43
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scry/shards.nix8
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile.lock25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/default.nix17
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/gemset.nix62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sd-local/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/selenium/htmlunit-driver/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/selenium/server/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/default.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/info.nix7
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/shellcheck/default.nix48
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/simavr/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/skaffold/default.nix39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/skopeo/default.nix56
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.nix50
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream.git3
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/so/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/default.nix77
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/spirv-tools/default.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/gemset.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sqsh/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sslmate/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/stagit/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/statik/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/summon/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch39
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/sunxi-tools/default.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/swiftformat/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/Cargo.nix215
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.list62
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.nix1890
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/default.nix18
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tabnine/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/textql/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/textql/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/the-way/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/thrust/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/environ-and-linux-is-kinda-posix.patch36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/headers.patch15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tora/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/toxiproxy/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tracy/default.nix49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/aarch64.patch12
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/tradcpp-configure.patch84
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/trellis/default.nix65
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tychus/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/tychus/deps.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/udis86/default.nix32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/uftrace/default.nix25
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/default.nix31
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/deps.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/default.nix143
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/unity-nosuid.c32
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/unityhub/default.nix40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch93
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/default.nix117
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset.nix440
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix118
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/unofficial-installation-nowarn.patch16
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/vagrant-libvirt.json.in9
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vala-lint/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vcstool/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vend/default.nix37
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch13
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/default.nix41
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/deps.nix210
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vim-vint/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vndr/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vogl/default.nix57
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix101
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vultr-cli/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/vultr/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wabt/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wally-cli/default.nix34
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock2557
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix36
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wasm-pack/default.nix42
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/watchman/default.nix47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wiggle/default.nix44
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wiiload/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/winpdb/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wllvm/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wp-cli/default.nix52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wrangler/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ws/default.nix23
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix35
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/default.nix72
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix301
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/sdks.nix29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/setup-hook.sh29
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix73
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix142
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile2
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile.lock15
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/default.nix21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/gemset.nix19
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xib2nib/default.nix22
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/xqilla/default.nix20
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/default.nix24
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/deps.nix11
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn/default.nix28
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix10
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh40
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/LICENSE.txt674
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js90
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix431
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_bin.js53
-rwxr-xr-xinfra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js49
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/fixPkgAddMissingSha1.js66
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js124
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js21
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/nix/expectShFunctions.sh30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/package.json47
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock3427
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix3813
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/ydiff/default.nix45
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yj/default.nix27
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yj/deps.nix30
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yq-go/default.nix33
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/yuicompressor/default.nix29
1254 files changed, 81982 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/agda-pkg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/agda-pkg/default.nix
new file mode 100644
index 000000000000..7c4ddb8a6883
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/agda-pkg/default.nix
@@ -0,0 +1,44 @@
+{ lib, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "agda-pkg";
+ version = "0.1.51";
+
+ disabled = pythonOlder "3.6";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "ee370889a1558caf45930d9f898dbe248048078e1e7e3ee17382bf574dc795f2";
+ };
+
+ # Checks need internet access, so we just check the program executes
+ # At the moment the help page needs to write to $HOME, this can
+ # be removed if https://github.com/agda/agda-pkg/issues/40 is fixed
+ checkPhase = ''
+ HOME=$NIX_BUILD_TOP $out/bin/apkg --help > /dev/null
+ '';
+
+ propagatedBuildInputs = [
+ click
+ GitPython
+ pony
+ whoosh
+ natsort
+ click-log
+ requests
+ humanize
+ distlib
+ jinja2
+ pyyaml
+ ponywhoosh
+ ];
+
+ meta = with lib; {
+ homepage = "https://agda.github.io/agda-pkg/";
+ description = "Package manager for Agda";
+ license = licenses.mit;
+ maintainers = with maintainers; [ alexarice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/default.nix
new file mode 100644
index 000000000000..44a6d7329baa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, jre, makeWrapper, makeDesktopItem }:
+
+let generic = { major, version, src }:
+
+ stdenv.mkDerivation rec {
+ name = "${nameMajor}-${version}";
+ nameMajor = "alloy${major}";
+
+ desktopItem = makeDesktopItem rec {
+ name = nameMajor;
+ exec = name;
+ icon = name;
+ desktopName = "Alloy ${major}";
+ genericName = "Relational modelling tool";
+ comment = meta.description;
+ categories = "Development;IDE;Education;";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ jar=$out/share/alloy/${nameMajor}.jar
+ install -Dm644 ${src} $jar
+
+ mkdir -p $out/bin
+ makeWrapper ${jre}/bin/java $out/bin/${nameMajor} --add-flags \
+ "-jar $jar"
+
+ install -Dm644 ${./icon.png} $out/share/pixmaps/${nameMajor}.png
+ cp -r ${desktopItem}/share/applications $out/share
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Language & tool for relational models";
+ longDescription = ''
+ Alloy is a language for describing structures and a tool for exploring
+ them. An Alloy model is a collection of constraints that describes a set
+ of structures, e.g. all the possible security configurations of a web
+ application, or all the possible topologies of a switching network. The
+ Alloy Analyzer is a solver that takes the constraints of a model and
+ finds structures that satisfy them. Structures are displayed graphically,
+ and their appearance can be customized for the domain at hand.
+ '';
+ homepage = "http://alloytools.org/";
+ downloadPage = "http://alloytools.org/download.html";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ notbandali ];
+ };
+ };
+
+in rec {
+ alloy4 = let version = "4.2_2015-02-22"; in generic {
+ major = "4";
+ inherit version;
+ src = fetchurl {
+ sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28";
+ url = "http://alloytools.org/download/alloy${version}.jar";
+ };
+ };
+
+ alloy5 = let version = "5.1.0"; in generic {
+ major = "5";
+ inherit version;
+ src = fetchurl {
+ sha256 = "02k9khs4k5nc86x9pp5k3vcb0kiwdgcin46mlap4fycnr673xd53";
+ url = "https://github.com/AlloyTools/org.alloytools.alloy/releases/download/v${version}/org.alloytools.alloy.dist.jar";
+ };
+ };
+
+ alloy = alloy5;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/icon.png b/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/icon.png
new file mode 100644
index 000000000000..a76bd9480474
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/alloy/icon.png
Binary files differ
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ameba/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ameba/default.nix
new file mode 100644
index 000000000000..9b7cf3f1de8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ameba/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, lib, fetchFromGitHub, crystal }:
+
+crystal.buildCrystalPackage rec {
+ pname = "ameba";
+ version = "0.13.2";
+
+ src = fetchFromGitHub {
+ owner = "crystal-ameba";
+ repo = "ameba";
+ rev = "v${version}";
+ sha256 = "0wyfx9nwda0s3arpdalz5zgh83v6wfz1a3l2k5v0jglpczq3m04m";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A static code analysis tool for Crystal";
+ homepage = "https://crystal-ameba.github.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kimburgess ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ammonite/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ammonite/default.nix
new file mode 100644
index 000000000000..82e38e2a25f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ammonite/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, jre, disableRemoteLogging ? true }:
+
+with stdenv.lib;
+
+let
+ common = { scalaVersion, sha256 }:
+ stdenv.mkDerivation rec {
+ pname = "ammonite";
+ version = "2.2.0";
+
+ src = fetchurl {
+ url =
+ "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
+ inherit sha256;
+ };
+
+ phases = "installPhase";
+
+ installPhase = ''
+ install -Dm755 $src $out/bin/amm
+ sed -i '0,/java/{s|java|${jre}/bin/java|}' $out/bin/amm
+ '' + optionalString (disableRemoteLogging) ''
+ sed -i '0,/ammonite.Main/{s|ammonite.Main|ammonite.Main --no-remote-logging|}' $out/bin/amm
+ sed -i '1i #!/bin/sh' $out/bin/amm
+ '';
+
+ meta = {
+ description = "Improved Scala REPL";
+ longDescription = ''
+ The Ammonite-REPL is an improved Scala REPL, re-implemented from first principles.
+ It is much more featureful than the default REPL and comes
+ with a lot of ergonomic improvements and configurability
+ that may be familiar to people coming from IDEs or other REPLs such as IPython or Zsh.
+ '';
+ homepage = "http://www.lihaoyi.com/Ammonite/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.nequissimus ];
+ };
+ };
+in {
+ ammonite_2_12 = common {
+ scalaVersion = "2.12";
+ sha256 = "0nclfqwy3jfn1680z1hd0zzmc0b79wpvx6gn1jnm19aq7qcvh5zp";
+ };
+ ammonite_2_13 = common {
+ scalaVersion = "2.13";
+ sha256 = "104bnahn382sb6vwjvchsg0jrnkkwjn08rfh0g5ra7lwhgcj2719";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/autoflake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/autoflake/default.nix
new file mode 100644
index 000000000000..396a5817c672
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/autoflake/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, python3Packages }:
+
+with python3Packages;
+buildPythonApplication rec {
+ pname = "autoflake";
+ version = "1.4";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "61a353012cff6ab94ca062823d1fb2f692c4acda51c76ff83a8d77915fba51ea";
+ };
+
+ propagatedBuildInputs = [ pyflakes ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/myint/autoflake";
+ description = "A simple program which removes unused imports and unused variables as reported by pyflakes";
+ license = licenses.mit;
+ maintainers = with maintainers; [ yuriaisaka ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
new file mode 100644
index 000000000000..236669dc54f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/bingrep/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "bingrep";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "m4b";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1qv41g7mblnq07145m03s2fhbrjfsc0924zb9z4cp159ygkggxcy";
+ };
+
+ cargoSha256 = "1z53408mcmy698xb2sxj1s1p9xc9srlkj0v8wswhdp7nq27vwkdj";
+
+ meta = with stdenv.lib; {
+ description = "Greps through binaries from various OSs and architectures, and colors them";
+ homepage = "https://github.com/m4b/bingrep";
+ license = licenses.mit;
+ maintainers = with maintainers; [ minijackson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix
new file mode 100644
index 000000000000..de351524f39b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/brakeman/default.nix
@@ -0,0 +1,18 @@
+{ lib, ruby, buildRubyGem }:
+
+buildRubyGem rec {
+ inherit ruby;
+ name = "${gemName}-${version}";
+ gemName = "brakeman";
+ version = "4.8.0";
+ source.sha256 = "0xy28pq4x1i7xns5af9k8fx35sqffz2lg94fgbsi9zhi877b7srg";
+
+ meta = with lib; {
+ description = "Static analysis security scanner for Ruby on Rails";
+ homepage = "https://brakemanscanner.org/";
+ changelog = "https://github.com/presidentbeef/brakeman/releases/tag/v${version}";
+ license = [ licenses.unfreeRedistributable ];
+ platforms = ruby.meta.platforms;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
new file mode 100644
index 000000000000..48805d168089
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -0,0 +1,30 @@
+{ lib, pkgconfig, rustPlatform, fetchFromGitHub, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-tarpaulin";
+ version = "0.14.3";
+
+ src = fetchFromGitHub {
+ owner = "xd009642";
+ repo = "tarpaulin";
+ rev = "${version}";
+ sha256 = "03d8h5b174699yivaamlvaqzck9zs119jk29yf70dvxw7cs0nngv";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+ buildInputs = [ openssl ];
+
+ cargoSha256 = "0zzp2wyq48j6n64fm37qfl65cg4yzf9ysichhkmkc6viq8x0f66d";
+ #checkFlags = [ "--test-threads" "1" ];
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A code coverage tool for Rust projects";
+ homepage = "https://github.com/xd009642/tarpaulin";
+ license = with licenses; [ mit /* or */ asl20 ];
+ maintainers = with maintainers; [ hugoreeves ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/cccc.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/cccc.patch
new file mode 100644
index 000000000000..9454e3b18ad1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/cccc.patch
@@ -0,0 +1,24 @@
+diff --git a/cccc/cccc_tbl.cc b/cccc/cccc_tbl.cc
+index df98e2b..59f2572 100644
+--- a/cccc/cccc_tbl.cc
++++ b/cccc/cccc_tbl.cc
+@@ -96,7 +96,7 @@ bool CCCC_Table<T>::remove(T* old_item_ptr)
+ typename map_t::iterator value_iterator=map_t::find(old_item_ptr->key());
+ if(value_iterator!=map_t::end())
+ {
+- erase(value_iterator);
++ map_t::erase(value_iterator);
+ retval=true;
+ }
+ return retval;
+diff --git a/makefile b/makefile
+index 23ad004..2cca469 100644
+--- a/makefile
++++ b/makefile
+@@ -20,5 +20,5 @@ test :
+ cd test ; make -f posix.mak
+
+ install :
+- cd install ; su root -c "make -f install.mak"
++ cd install ; make -f install.mak
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix
new file mode 100644
index 000000000000..374331f3ac87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cccc/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl }:
+
+let
+ name = "cccc";
+ version = "3.1.4";
+in
+stdenv.mkDerivation {
+ name = "${name}-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${name}/${version}/${name}-${version}.tar.gz";
+ sha256 = "1gsdzzisrk95kajs3gfxks3bjvfd9g680fin6a9pjrism2lyrcr7";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patches = [ ./cccc.patch ];
+
+ preConfigure = ''
+ substituteInPlace install/install.mak --replace /usr/local/bin $out/bin
+ substituteInPlace install/install.mak --replace MKDIR=mkdir "MKDIR=mkdir -p"
+ '';
+ buildFlags = [ "CCC=c++" "LD=c++" ];
+
+ meta = {
+ description = "C and C++ Code Counter";
+ longDescription = ''
+ CCCC is a tool which analyzes C++ and Java files and generates a report
+ on various metrics of the code. Metrics supported include lines of code, McCabe's
+ complexity and metrics proposed by Chidamber&Kemerer and Henry&Kafura.
+ '';
+ homepage = "http://cccc.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.linquize ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
new file mode 100644
index 000000000000..5dba30e76636
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ version = "8.36";
+ pname = "checkstyle";
+
+ src = fetchurl {
+ url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
+ sha256 = "1f8g330akx3sdc35dgvy6kksr7y3dnnj7029qrpn745bd9fh92hh";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jre ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ runHook preInstall
+ install -D $src $out/checkstyle/checkstyle-all.jar
+ makeWrapper ${jre}/bin/java $out/bin/checkstyle \
+ --add-flags "-jar $out/checkstyle/checkstyle-all.jar"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Checks Java source against a coding standard";
+ longDescription = ''
+ checkstyle is a development tool to help programmers write Java code that
+ adheres to a coding standard. By default it supports the Sun Code
+ Conventions, but is highly configurable.
+ '';
+ homepage = "http://checkstyle.sourceforge.net/";
+ license = licenses.lgpl21;
+ maintainers = with maintainers; [ pSub ];
+ platforms = jre.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch
new file mode 100644
index 000000000000..bcb3ac1d146a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch
@@ -0,0 +1,33 @@
+From 6ab08bc1c889e4fb9a39432b1a654eaa19ee65eb Mon Sep 17 00:00:00 2001
+From: Austin Seipp <aseipp@pobox.com>
+Date: Fri, 2 May 2014 12:28:23 -0500
+Subject: [PATCH] Fix scan-build to use NIX_CFLAGS_COMPILE
+
+Signed-off-by: Austin Seipp <aseipp@pobox.com>
+---
+ tools/scan-build/ccc-analyzer | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/tools/scan-build/ccc-analyzer b/tools/scan-build/ccc-analyzer
+index b463ec0..9d39dd0 100755
+--- a/tools/scan-build/ccc-analyzer
++++ b/tools/scan-build/ccc-analyzer
+@@ -207,6 +207,15 @@ sub Analyze {
+ push @Args, "-Xclang", "-analyzer-viz-egraph-ubigraph";
+ }
+
++
++ # Add Nix flags to analysis
++ if (defined $ENV{'NIX_CFLAGS_COMPILE'}) {
++ my @nixArgs = split(/\s+/, $ENV{'NIX_CFLAGS_COMPILE'});
++ foreach my $nixArg (@nixArgs) {
++ push @Args, $nixArg;
++ }
++ }
++
+ my $AnalysisArgs = GetCCArgs("--analyze", \@Args);
+ @CmdArgs = @$AnalysisArgs;
+ }
+--
+1.8.3.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/default.nix
new file mode 100644
index 000000000000..6b0c1b401f63
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/clang-analyzer/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, clang, llvmPackages, perl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "clang-analyzer";
+ version = "3.4";
+
+ src = fetchurl {
+ url = "http://llvm.org/releases/${version}/clang-${version}.src.tar.gz";
+ sha256 = "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92";
+ };
+
+ patches = [ ./0001-Fix-scan-build-to-use-NIX_CFLAGS_COMPILE.patch ];
+ buildInputs = [ clang llvmPackages.clang perl makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+ cp -R tools/scan-view $out/libexec
+ cp -R tools/scan-build $out/libexec
+
+ makeWrapper $out/libexec/scan-view/scan-view $out/bin/scan-view
+ makeWrapper $out/libexec/scan-build/scan-build $out/bin/scan-build \
+ --add-flags "--use-cc=${clang}/bin/clang" \
+ --add-flags "--use-c++=${clang}/bin/clang++" \
+ --add-flags "--use-analyzer='${llvmPackages.clang}/bin/clang'"
+ '';
+
+ meta = {
+ description = "Clang Static Analyzer";
+ homepage = "http://clang-analyzer.llvm.org";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coan/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
new file mode 100644
index 000000000000..4c6e9f1a078c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coan/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ version = "6.0.1";
+ pname = "coan";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/coan2/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "1d041j0nd1hc0562lbj269dydjm4rbzagdgzdnmwdxr98544yw44";
+ };
+
+ nativeBuildInputs = [ perl ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ mv -v $out/share/man/man1/coan.1.{1,gz}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The C preprocessor chainsaw";
+ longDescription = ''
+ A software engineering tool for analysing preprocessor-based
+ configurations of C or C++ source code. Its principal use is to simplify
+ a body of source code by eliminating any parts that are redundant with
+ respect to a specified configuration. Dead code removal is an
+ application of this sort.
+ '';
+ homepage = "http://coan2.sourceforge.net/";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
new file mode 100644
index 000000000000..e450bbefe242
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, fetchzip
+, zlib
+, xorg
+, freetype
+, alsaLib
+, jdk11
+, curl
+, lttng-ust
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "codeql";
+ version = "2.2.5";
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontStrip = true;
+
+ src = fetchzip {
+ url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
+ sha256 = "1x9crby4idkvfy6i5l0r00ixnx3ij68zjh1l5n92hyzlf0snv28d";
+ };
+
+ nativeBuildInputs = [
+ zlib
+ xorg.libX11
+ xorg.libXext
+ xorg.libXi
+ xorg.libXtst
+ xorg.libXrender
+ freetype
+ alsaLib
+ jdk11
+ stdenv.cc.cc.lib
+ curl
+ lttng-ust
+ autoPatchelfHook
+ ];
+
+ installPhase = ''
+ # codeql directory should not be top-level, otherwise,
+ # it'll include /nix/store to resolve extractors.
+ mkdir -p $out/{codeql,bin}
+ cp -R * $out/codeql/
+
+ ln -sf $out/codeql/tools/linux64/lib64trace.so $out/codeql/tools/linux64/libtrace.so
+
+ sed -i 's;"$CODEQL_DIST/tools/$CODEQL_PLATFORM/java/bin/java";"${jdk11}/bin/java";' $out/codeql/codeql
+
+ ln -s $out/codeql/codeql $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Semantic code analysis engine";
+ homepage = "https://semmle.com/codeql";
+ maintainers = [ maintainers.dump_stack ];
+ license = licenses.unfree;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cov-build/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cov-build/default.nix
new file mode 100644
index 000000000000..bd8c5c37c864
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cov-build/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, requireFile }:
+
+let
+ message = ''
+ Register an account at https://scan.coverity.com, download the
+ build tools, and add it to the nix store with nix-prefetch-url
+ '';
+in
+stdenv.mkDerivation rec {
+ pname = "cov-build";
+ version = "7.0.2";
+
+ src =
+ if stdenv.hostPlatform.system == "i686-linux"
+ then requireFile {
+ name = "cov-analysis-linux32-${version}.tar.gz";
+ sha256 = "0i06wbd7blgx9adh9w09by4i18vwmldfp9ix97a5dph2cjymsviy";
+ inherit message;
+ }
+ else requireFile {
+ name = "cov-analysis-linux64-${version}.tar.gz";
+ sha256 = "0iby75p0g8gv7b501xav47milr8m9781h0hcgm1ch6x3qj6irqd8";
+ inherit message;
+ };
+
+ dontStrip = true;
+ buildPhase = false;
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+ mv * $out/libexec
+ for x in cov-build cov-capture cov-configure cov-emit cov-emit-java \
+ cov-export-cva cov-extract-scm cov-help cov-import-scm cov-link \
+ cov-internal-clang cov-internal-emit-clang cov-internal-nm \
+ cov-internal-emit-java-bytecode cov-internal-reduce cov-translate \
+ cov-preprocess cov-internal-pid-to-db cov-manage-emit \
+ cov-manage-history; do
+ ln -s $out/libexec/bin/$x $out/bin/$x;
+ done
+ '';
+
+ meta = {
+ description = "Coverity Scan build tools";
+ homepage = "https://scan.coverity.com";
+ license = stdenv.lib.licenses.unfreeRedistributable;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coz/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
new file mode 100644
index 000000000000..09bb44dc55f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/coz/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, fetchFromGitHub
+, libelfin
+, ncurses
+, python3
+, python3Packages
+, makeWrapper
+}:
+stdenv.mkDerivation rec {
+ pname = "coz";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "plasma-umass";
+ repo = "coz";
+ rev = version;
+ sha256 = "0val36yw987b1558iiyk3nqg0yy5k9y5wh49v91zj3cs58mmfyhc";
+ };
+
+ postPatch = ''
+ sed -i -e '/pid_t gettid/,+2d' libcoz/ccutil/thread.h
+ '';
+
+ postConfigure = ''
+ # This is currently hard-coded. Will be fixed in the next release.
+ sed -e "s|/usr/lib/|$out/lib/|" -i ./coz
+ '';
+
+ nativeBuildInputs = [
+ ncurses
+ makeWrapper
+ python3Packages.wrapPython
+ ];
+
+ buildInputs = [
+ libelfin
+ (python3.withPackages (p: [ p.docutils ]))
+ ];
+
+ installPhase = ''
+ mkdir -p $out/share/man/man1
+ make install prefix=$out
+
+ # fix executable includes
+ chmod -x $out/include/coz.h
+
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ homepage = "https://github.com/plasma-umass/coz";
+ description = "Coz: Causal Profiling";
+ license = stdenv.lib.licenses.bsd2;
+ maintainers = with stdenv.lib.maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
new file mode 100644
index 000000000000..8e2c28336cf7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, libxslt, docbook_xsl, docbook_xml_dtd_45, pcre, withZ3 ? true, z3 }:
+
+stdenv.mkDerivation rec {
+ pname = "cppcheck";
+ version = "2.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
+ sha256 = "1xx5i6z9a36h7k4ipikrk2zidk7jcjv8ryqyq2m5hnwy0gpyw9mb";
+ };
+
+ buildInputs = [ pcre ] ++ stdenv.lib.optionals withZ3 [ z3 ];
+ nativeBuildInputs = [ libxslt docbook_xsl docbook_xml_dtd_45 ];
+
+ makeFlags = [ "PREFIX=$(out)" "FILESDIR=$(out)/cfg" "HAVE_RULES=yes" ]
+ ++ stdenv.lib.optionals withZ3 [ "USE_Z3=yes" "CPPFLAGS=-DNEW_Z3=1" ];
+
+ outputs = [ "out" "man" ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ make DB2MAN=${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl man
+ mkdir -p $man/share/man/man1
+ cp cppcheck.1 $man/share/man/man1/cppcheck.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A static analysis tool for C/C++ code";
+ longDescription = ''
+ Check C/C++ code for memory leaks, mismatching allocation-deallocation,
+ buffer overruns and more.
+ '';
+ homepage = "http://cppcheck.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ joachifm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix
new file mode 100644
index 000000000000..61aee215031a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/cpplint/default.nix
@@ -0,0 +1,30 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "cpplint";
+ version = "1.5.1";
+
+ # Fetch from github instead of pypi, since the test cases are not in the pypi archive
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "0k927mycj1k4l3fbxrk597bhcjl2nrpaas1imbjgk64cyq8dv7lh";
+ };
+
+ postPatch = ''
+ patchShebangs cpplint_unittest.py
+ '';
+
+ checkInputs = with python3Packages; [ pytest pytestrunner ];
+ checkPhase = ''
+ ./cpplint_unittest.py
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/cpplint/cpplint";
+ description = "Static code checker for C++";
+ maintainers = [ maintainers.bhipple ];
+ license = [ licenses.bsd3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix
new file mode 100644
index 000000000000..080b19bf163b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/egypt/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, perlPackages }:
+
+perlPackages.buildPerlPackage rec {
+ pname = "egypt";
+ version = "1.10";
+
+ src = fetchurl {
+ sha256 = "0r0wj6v8z9fzlh9pb5617kyjdf92ppmlbzajaarrq729bbb6ln5m";
+ url = "https://www.gson.org/egypt/download/${pname}-${version}.tar.gz";
+ };
+
+ outputs = [ "out" ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Tool for making call graphs of C programmes";
+ longDescription = ''
+ Egypt is a simple tool for creating call graphs of C programs. It neither
+ analyzes source code nor lays out graphs. Instead, it leaves the source
+ code analysis to GCC and the graph layout to Graphviz, both of which are
+ better at their respective jobs than egypt itself could ever hope to be.
+ Egypt is simply a very small Perl script that glues these existing tools
+ together.
+ '';
+ homepage = "http://www.gson.org/egypt/";
+ license = with licenses; [ artistic1 gpl1Plus ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/emma/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/emma/default.nix
new file mode 100644
index 000000000000..3cc16c07ec59
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/emma/default.nix
@@ -0,0 +1,24 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+ name = "emma-2.0.5312";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/emma/emma-2.0.5312.zip";
+ sha256 = "0xxy39s2lvgs56vicjzpcz936l1vjaplliwa0dm7v3iyvw6jn7vj";
+ };
+
+ buildInputs = [unzip];
+
+ installPhase = ''
+ mkdir -p $out/lib/jars
+ cp lib/*.jar $out/lib/jars/
+ '';
+
+ meta = {
+ homepage = "http://emma.sourceforge.net/";
+ description = "A code coverage tool for Java";
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.cpl10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix
new file mode 100644
index 000000000000..b8abad44f241
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, lib, fetchFromGitHub, which, openssl, readline, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "eresi";
+ version = "0.83-a3-phoenix";
+
+ src = fetchFromGitHub {
+ owner = "thorkill";
+ repo = "eresi";
+ rev = version;
+ sha256 = "0a5a7mh2zw9lcdrl8n1mqccrc0xcgj7743l7l4kslkh722fxv625";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/thorkill/eresi/commit/a79406344cc21d594d27fa5ec5922abe9f7475e7.patch";
+ sha256 = "1mjjc6hj7r06iarvai7prcdvjk9g0k5vwrmkwcm7b8ivd5xzxp2z";
+ })
+ ];
+
+ postPatch = ''
+ # Two occurences of fprintf() with only two arguments, which should really
+ # be fputs().
+ #
+ # Upstream pull request: https://github.com/thorkill/eresi/pull/162
+ #
+ sed -i -e 's/fprintf(\(stderr\), *\([a-z0-9]\+\))/fputs(\2, \1)/g' \
+ libe2dbg/common/common.c libe2dbg/user/threads.c
+
+ # We need to patch out a few ifs here, because it tries to create a series
+ # of configuration files in ~/.something. However, our builds are sandboxed
+ # and also don't contain a valid home, so let's NOP it out :-)
+ #
+ # The second fix we need to make is that we need to pretend being Gentoo
+ # because otherwise the build process tries to link against libtermcap,
+ # which I think is solely for historic reasons (nowadays Terminfo should
+ # have largely superseded it).
+ sed -i -e '/^if \[ ! -e/c if false; then' \
+ -e 's/^GENTOO=.*/GENTOO=1/' configure
+ '';
+
+ configureFlags = [
+ (if stdenv.is64bit then "--enable-32-64" else "--enable-32")
+ "--enable-readline"
+ ];
+
+ # The configure script is not generated by autoconf but is hand-rolled, so it
+ # has --enable-static but no --disabled-static and also doesn't support the
+ # equals sign in --prefix.
+ prefixKey = "--prefix ";
+ dontDisableStatic = true;
+
+ nativeBuildInputs = [ which ];
+ buildInputs = [ openssl readline ];
+ enableParallelBuilding = true;
+
+ installTargets = lib.singleton "install"
+ ++ lib.optional stdenv.is64bit "install64";
+
+ meta = {
+ description = "The ERESI Reverse Engineering Software Interface";
+ license = lib.licenses.gpl2;
+ homepage = "http://www.eresi-project.org/";
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix
new file mode 100644
index 000000000000..64a1c3173930
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/evmdis/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "evmdis-unstable";
+ version = "2018-03-23";
+ goPackagePath = "github.com/Arachnid/evmdis";
+
+ src = fetchFromGitHub {
+ owner = "Arachnid";
+ repo = "evmdis";
+ rev = "0d1406905c5fda6224651fa53260a21c907eb986";
+ sha256 = "09y4j7ipgv8yd99g3xk3f079w8fqfj7kl1y7ry81ainysn0qlqrg";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Arachnid/evmdis";
+ description = "Ethereum EVM disassembler";
+ license = [ licenses.asl20 ];
+ maintainers = with maintainers; [ asymmetric ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/findbugs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/findbugs/default.nix
new file mode 100644
index 000000000000..d522b2b94227
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/findbugs/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "findbugs-3.0.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/findbugs/${name}.tar.gz";
+ sha256 = "06b46fz4nid7qvm36r66zw01fr87y4jyz21ixw27b8hkqah0s3p8";
+ };
+
+ buildPhase = ''
+ substituteInPlace bin/findbugs --replace /bin/pwd pwd
+ '';
+
+ installPhase = ''
+ d=$out/libexec/findbugs
+ mkdir -p $d $out/bin $out/nix-support
+
+ cp -prd bin lib plugin doc $d/
+ rm $d/bin/*.bat
+ for i in $d/bin/*; do
+ if [ -f $i ]; then ln -s $i $out/bin/; fi
+ done
+
+ # Get rid of unnecessary JARs.
+ rm $d/lib/ant.jar
+
+ # Make some JARs findable.
+ mkdir -p $out/share/java
+ ln -s $d/lib/{findbugs.jar,findbugs-ant.jar} $out/share/java/
+
+ cat <<EOF > $out/nix-support/setup-hook
+ export FINDBUGS_HOME=$d
+ EOF
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A static analysis tool to find bugs in Java programs automatically";
+ homepage = "http://findbugs.sourceforge.net/";
+ maintainers = with maintainers; [ pSub ];
+ platforms = with platforms; unix;
+ license = licenses.lgpl3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
new file mode 100644
index 000000000000..cc3ef8ed0f7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, ocamlPackages, CoreServices }:
+
+stdenv.mkDerivation rec {
+ pname = "flow";
+ version = "0.133.0";
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = "flow";
+ rev = "refs/tags/v${version}";
+ sha256 = "1r4s4gw50pvp4r4mq2w45s9i7fbkf7zycgp8rrj1dqzmkl9v6kii";
+ };
+
+ installPhase = ''
+ install -Dm755 bin/flow $out/bin/flow
+ install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
+ '';
+
+ buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ocaml-migrate-parsetree ])
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
+
+ meta = with stdenv.lib; {
+ description = "A static type checker for JavaScript";
+ homepage = "https://flow.org/";
+ changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
+ license = licenses.mit;
+ platforms = ocamlPackages.ocaml.meta.platforms;
+ broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556
+ maintainers = with maintainers; [ marsam puffnfresh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
new file mode 100644
index 000000000000..179a74c56d50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
@@ -0,0 +1,81 @@
+{ lib, stdenv, fetchurl, makeWrapper, writeText
+, autoconf, ncurses, graphviz, doxygen
+, ocamlPackages, ltl2ba, coq, why3,
+}:
+
+let
+ mkocamlpath = p: "${p}/lib/ocaml/${ocamlPackages.ocaml.version}/site-lib";
+ runtimeDeps = with ocamlPackages; [
+ apron
+ biniou
+ camlzip
+ easy-format
+ menhir
+ mlgmpidl
+ num
+ ocamlgraph
+ why3
+ yojson
+ zarith
+ ];
+ ocamlpath = lib.concatMapStringsSep ":" mkocamlpath runtimeDeps;
+in
+
+stdenv.mkDerivation rec {
+ pname = "frama-c";
+ version = "21.1";
+ slang = "Scandium";
+
+ src = fetchurl {
+ url = "http://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
+ sha256 = "0qq0d08dzr0dmdjysiimdqmwlzgnn932vp5kf8lfn3nl45ai09dy";
+ };
+
+ preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")";
+
+ nativeBuildInputs = [ autoconf makeWrapper ];
+
+ buildInputs = with ocamlPackages; [
+ ncurses ocaml findlib ltl2ba ocamlgraph yojson menhir camlzip
+ lablgtk coq graphviz zarith apron why3 mlgmpidl doxygen
+ ];
+
+ enableParallelBuilding = true;
+
+ fixupPhase = ''
+ for p in $out/bin/frama-c{,-gui};
+ do
+ wrapProgram $p --prefix OCAMLPATH ':' ${ocamlpath}
+ done
+ '';
+
+ # Allow loading of external Frama-C plugins
+ setupHook = writeText "setupHook.sh" ''
+ addFramaCPath () {
+ if test -d "''$1/lib/frama-c/plugins"; then
+ export FRAMAC_PLUGIN="''${FRAMAC_PLUGIN}''${FRAMAC_PLUGIN:+:}''$1/lib/frama-c/plugins"
+ export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c/plugins"
+ fi
+
+ if test -d "''$1/lib/frama-c"; then
+ export OCAMLPATH="''${OCAMLPATH}''${OCAMLPATH:+:}''$1/lib/frama-c"
+ fi
+
+ if test -d "''$1/share/frama-c/"; then
+ export FRAMAC_EXTRA_SHARE="''${FRAMAC_EXTRA_SHARE}''${FRAMAC_EXTRA_SHARE:+:}''$1/share/frama-c"
+ fi
+
+ }
+
+ addEnvHooks "$targetOffset" addFramaCPath
+ '';
+
+
+ meta = {
+ description = "An extensible and collaborative platform dedicated to source-code analysis of C software";
+ homepage = "http://frama-c.com/";
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice amiddelk ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
new file mode 100644
index 000000000000..d0221e80b9bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+
+ name = "tracefilegen-2017-05-13";
+
+ src = fetchFromGitHub {
+ owner = "GarCoSim";
+ repo = "TraceFileGen";
+ rev = "0ebfd1fdb54079d4bdeaa81fc9267ecb9f016d60";
+ sha256 = "1gsx18ksgz5gwl3v62vgrmhxc0wc99i74qwhpn0h57zllk41drjc";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ patches = [ ./gcc7.patch ];
+
+ installPhase = ''
+ install -Dm755 TraceFileGen $out/bin/TraceFileGen
+ mkdir -p $out/share/doc/${name}/
+ cp -ar $src/Documentation/html $out/share/doc/${name}/.
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatically generate all types of basic memory management operations and write into trace files";
+ homepage = "https://github.com/GarCoSim";
+ maintainers = [ maintainers.cmcdragonkai ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/gcc7.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/gcc7.patch
new file mode 100644
index 000000000000..48301bbf61ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilegen/gcc7.patch
@@ -0,0 +1,13 @@
+diff --git a/Utils/Logger.cpp b/Utils/Logger.cpp
+index 747cd63..e3efdf1 100644
+--- a/Utils/Logger.cpp
++++ b/Utils/Logger.cpp
+@@ -29,7 +29,7 @@ Logger::Logger(char* tracepath) {
+ trace = fopen(tracepath, "w");
+
+ // dot file is not used, set null as default value
+- dot = '\0';
++ dot = nullptr;
+ //dot = fopen("gcKons.dot", "w");
+ //fprintf(dot,"digraph G {\n");
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
new file mode 100644
index 000000000000..10f0d74c0dc7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/garcosim/tracefilesim/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+
+ name = "tracefilesim-2015-11-07";
+
+ src = fetchgit {
+ url = "https://github.com/GarCoSim/TraceFileSim.git";
+ rev = "368aa6b1d6560e7ecbd16fca47000c8f528f3da2";
+ sha256 = "156m92k38ap4bzidbr8dzl065rni8lrib71ih88myk9z5y1x5nxm";
+ };
+
+ hardeningDisable = [ "fortify" ];
+
+ installPhase = ''
+ mkdir --parents "$out/bin"
+ cp ./traceFileSim "$out/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Ease the analysis of existing memory management techniques, as well as the prototyping of new memory management techniques";
+ homepage = "https://github.com/GarCoSim";
+ maintainers = [ maintainers.cmcdragonkai ];
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix
new file mode 100644
index 000000000000..68f12dac70f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, fetchurl
+, lib
+, autoPatchelfHook
+, wrapQtAppsHook
+, libbsd
+, python27
+, gmpxx
+, ncurses5
+, gnustep
+, libffi
+}:
+stdenv.mkDerivation rec {
+ pname = "hopper";
+ version = "4.5.29";
+ rev = "v${lib.versions.major version}";
+
+ src = fetchurl {
+ url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
+ sha256 = "1v1pff5fiv41khvrnlpdks2vddjnvziyn14qqj6v26snyhwi86zh";
+ };
+
+ sourceRoot = ".";
+
+ nativeBuildInputs = [
+ wrapQtAppsHook
+ autoPatchelfHook
+ ];
+
+ buildInputs = [
+ libbsd
+ python27
+ gmpxx
+ ncurses5
+ gnustep.libobjc
+ ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ mkdir -p $out/lib
+ mkdir -p $out/share
+
+ cp $sourceRoot/opt/hopper-${rev}/bin/Hopper $out/bin/hopper
+ cp \
+ --archive \
+ $sourceRoot/opt/hopper-${rev}/lib/libBlocksRuntime.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libdispatch.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libgnustep-base.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libHopperCore.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libkqueue.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libobjcxx.so* \
+ $sourceRoot/opt/hopper-${rev}/lib/libpthread_workqueue.so* \
+ $out/lib
+
+ # we already ship libffi.so.7
+ ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib/libffi.so.6
+
+ cp -r $sourceRoot/usr/share $out
+
+ runHook postInstall
+ '';
+
+ postFixup = ''
+ substituteInPlace "$out/share/applications/hopper-${rev}.desktop" \
+ --replace "Exec=/opt/hopper-${rev}/bin/Hopper" "Exec=$out/bin/hopper"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.hopperapp.com/index.html";
+ description = "A macOS and Linux Disassembler";
+ license = licenses.unfree;
+ maintainers = with maintainers; [
+ luis
+ Enteee
+ ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
new file mode 100644
index 000000000000..f04d060290f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
@@ -0,0 +1,67 @@
+{ stdenv,
+ mkDerivation,
+ cmake,
+ elfutils,
+ extra-cmake-modules,
+ fetchFromGitHub,
+ kconfigwidgets,
+ ki18n,
+ kio,
+ kitemmodels,
+ kitemviews,
+ kwindowsystem,
+ libelf,
+ qtbase,
+ threadweaver,
+}:
+
+mkDerivation rec {
+ pname = "hotspot";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ owner = "KDAB";
+ repo = "hotspot";
+ rev = "v${version}";
+ sha256 = "1f68bssh3p387hkavfjkqcf7qf7w5caznmjfjldicxphap4riqr5";
+ fetchSubmodules = true;
+ };
+
+ buildInputs = [
+ cmake
+ elfutils
+ extra-cmake-modules
+ kconfigwidgets
+ ki18n
+ kio
+ kitemmodels
+ kitemviews
+ kwindowsystem
+ libelf
+ qtbase
+ threadweaver
+ ];
+
+ # hotspot checks for the presence of third party libraries'
+ # git directory to give a nice warning when you forgot to clone
+ # submodules; but Nix clones them and removes .git (for reproducibility).
+ # So we need to fake their existence here.
+ postPatch = ''
+ mkdir -p 3rdparty/perfparser/.git
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "A GUI for Linux perf";
+ longDescription = ''
+ hotspot is a GUI replacement for `perf report`.
+ It takes a perf.data file, parses and evaluates its contents and
+ then displays the result in a graphical way.
+ '';
+ homepage = "https://github.com/KDAB/hotspot";
+ license = with stdenv.lib.licenses; [ gpl2 gpl3 ];
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ nh2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/ikos/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/ikos/default.nix
new file mode 100644
index 000000000000..7108e9311b82
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/ikos/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, cmake, boost, tbb
+, gmp, llvm, clang, sqlite, python3
+, ocamlPackages, mpfr, ppl, doxygen, graphviz
+}:
+
+let
+ python = python3.withPackages (ps: with ps; [
+ pygments
+ ]);
+in
+
+stdenv.mkDerivation rec {
+ name = "ikos";
+ version = "3.0";
+
+ src = fetchFromGitHub {
+ owner = "NASA-SW-VnV";
+ repo = name;
+ rev = "v${version}";
+ sha256 = "0k3kp1af0qx3l1x6a4sl4fm8qlwchjvwkvs2ck0fhfnc62q2im5f";
+ };
+
+ buildInputs = [ cmake boost tbb gmp clang llvm sqlite python
+ ocamlPackages.apron mpfr ppl doxygen graphviz ];
+
+ cmakeFlags = [ "-DAPRON_ROOT=${ocamlPackages.apron}" ];
+
+ postBuild = "make doc";
+
+ meta = with lib; {
+ homepage = "https://github.com/NASA-SW-VnV/ikos";
+ description = "Static analyzer for C/C++ based on the theory of Abstract Interpretation";
+ license = licenses.nasa13;
+ maintainers = with maintainers; [ atnnn ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
new file mode 100644
index 000000000000..8bda0ac2223f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, cmake, llvmPackages, python2 }:
+
+stdenv.mkDerivation rec {
+ pname = "include-what-you-use";
+ # Also bump llvmPackages in all-packages.nix to the supported version!
+ version = "0.14";
+
+ src = fetchurl {
+ sha256 = "1vq0c8jqspvlss8hbazml44fi0mbslgnp2i9wcr0qrjpvfbl6623";
+ url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
+ };
+
+ buildInputs = with llvmPackages; [ clang-unwrapped llvm python2 ];
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [ "-DIWYU_LLVM_ROOT_PATH=${llvmPackages.clang-unwrapped}" ];
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ substituteInPlace $out/bin/iwyu_tool.py \
+ --replace "'include-what-you-use'" "'$out/bin/include-what-you-use'"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Analyze #includes in C/C++ source files with clang";
+ longDescription = ''
+ For every symbol (type, function variable, or macro) that you use in
+ foo.cc, either foo.cc or foo.h should #include a .h file that exports the
+ declaration of that symbol. The main goal of include-what-you-use is to
+ remove superfluous #includes, both by figuring out what #includes are not
+ actually needed for this file (for both .cc and .h files), and by
+ replacing #includes with forward-declares when possible.
+ '';
+ homepage = "https://include-what-you-use.org";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix
new file mode 100644
index 000000000000..c903833a731a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/jdepend/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, ant, jdk, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "jdepend";
+ version = "2.10";
+
+ src = fetchFromGitHub {
+ owner = "clarkware";
+ repo = "jdepend";
+ rev = version;
+ sha256 = "1lxf3j9vflky7a2py3i59q7cwd1zvjv2b88l3za39vc90s04dz6k";
+ };
+
+ nativeBuildInputs = [ ant jdk ];
+ buildPhase = "ant jar";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share
+ install dist/${pname}-${version}.jar $out/share
+
+ cat > "$out/bin/jdepend" <<EOF
+ #!${runtimeShell}
+ exec ${jdk.jre}/bin/java -classpath "$out/share/*" "\$@"
+ EOF
+ chmod a+x $out/bin/jdepend
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Traverses Java class file directories and generates design quality metrics for each Java package";
+ homepage = "http://www.clarkware.com/software/JDepend.html";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
new file mode 100644
index 000000000000..bbea8a1dd65d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/kcov/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchFromGitHub, cmake, pkgconfig, zlib, curl, elfutils, python, libiberty, libopcodes}:
+
+stdenv.mkDerivation rec {
+ pname = "kcov";
+ version = "36";
+
+ src = fetchFromGitHub {
+ owner = "SimonKagstrom";
+ repo = "kcov";
+ rev = "v${version}";
+ sha256 = "1q1mw5mxz041lr6qc2v4280rmx13pg1bx5r3bxz9bzs941r405r3";
+ };
+
+ preConfigure = "patchShebangs src/bin-to-c-source.py";
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [ zlib curl elfutils python libiberty libopcodes ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Code coverage tester for compiled programs, Python scripts and shell scripts";
+
+ longDescription = ''
+ Kcov is a code coverage tester for compiled programs, Python
+ scripts and shell scripts. It allows collecting code coverage
+ information from executables without special command-line
+ arguments, and continuosly produces output from long-running
+ applications.
+ '';
+
+ homepage = "http://simonkagstrom.github.io/kcov/index.html";
+ license = licenses.gpl2;
+
+ maintainers = with maintainers; [ gal_bolle ekleog ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix
new file mode 100644
index 000000000000..6ac778180b77
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/lcov/default.nix
@@ -0,0 +1,51 @@
+ {stdenv, fetchurl, fetchpatch, perl, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "lcov-1.14";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/ltp/${name}.tar.gz";
+ sha256 = "06h7ixyznf6vz1qvksjgy5f3q2nw9akf6zx59npf0h3l32cmd68l";
+ };
+
+ patches =
+ [ (fetchpatch {
+ url = "https://github.com/linux-test-project/lcov/commit/ebfeb3e179e450c69c3532f98cd5ea1fbf6ccba7.patch";
+ sha256 = "0dalkqbjb6a4vp1lcsxd39dpn5fzdf7ihsjbiviq285s15nxdj1j";
+ })
+ (fetchpatch {
+ url = "https://github.com/linux-test-project/lcov/commit/75fbae1cfc5027f818a0bb865bf6f96fab3202da.patch";
+ sha256 = "0v1hn0511dxqbf50ppwasc6vmg0m6rns7ydbdy2rdbn0j7gxw30x";
+ })
+ ];
+
+ buildInputs = [ perl makeWrapper ];
+
+ preBuild = ''
+ patchShebangs bin/
+ makeFlagsArray=(PREFIX=$out LCOV_PERL_PATH=$(command -v perl))
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/lcov --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.PerlIOgzip perlPackages.JSON ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Code coverage tool that enhances GNU gcov";
+
+ longDescription =
+ '' LCOV is an extension of GCOV, a GNU tool which provides information
+ about what parts of a program are actually executed (i.e.,
+ "covered") while running a particular test case. The extension
+ consists of a set of PERL scripts which build on the textual GCOV
+ output to implement the following enhanced functionality such as
+ HTML output.
+ '';
+
+ homepage = "http://ltp.sourceforge.net/coverage/lcov.php";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = with maintainers; [ dezgeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix
new file mode 100644
index 000000000000..20fe74ecb74d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/makefile2graph/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, bash, gnumake }:
+
+stdenv.mkDerivation {
+ name = "makefile2graph-2018-01-03";
+
+ src = fetchFromGitHub {
+ owner = "lindenb";
+ repo = "makefile2graph";
+ rev = "61fb95a5ba91c20236f5e4deb11127c34b47091f";
+ sha256 = "07hq40bl48i8ka35fcciqcafpd8k9rby1wf4vl2p53v0665xaghr";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ fixupPhase = ''
+ substituteInPlace $out/bin/makefile2graph \
+ --replace '/bin/sh' ${bash}/bin/bash \
+ --replace 'make2graph' "$out/bin/make2graph"
+ wrapProgram $out/bin/makefile2graph \
+ --set PATH ${stdenv.lib.makeBinPath [ gnumake ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/lindenb/makefile2graph";
+ description = "Creates a graph of dependencies from GNU-Make; Output is a graphiz-dot file or a Gexf-XML file";
+ maintainers = with maintainers; [ cmcdragonkai ];
+ license = licenses.mit;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
new file mode 100644
index 000000000000..c2f0236ed0b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/massif-visualizer/default.nix
@@ -0,0 +1,30 @@
+{
+ mkDerivation, lib, fetchurl,
+ extra-cmake-modules, shared-mime-info,
+ qtsvg, qtxmlpatterns, karchive, kconfig, kcoreaddons, kparts, kio, ki18n,
+ kdiagram, kgraphviewer
+}:
+
+mkDerivation rec {
+ pname = "massif-visualizer";
+ version = "0.7.0";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/massif-visualizer/${version}/src/${pname}-${version}.tar.xz";
+ sha256 = "0v8z6r9gngzckvqyxjm9kp7hilwfqibyk2f9vag9l98ar0iwr97q";
+ };
+
+ nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
+
+ buildInputs = [
+ qtsvg qtxmlpatterns karchive kconfig kcoreaddons kparts kio ki18n
+ kdiagram kgraphviewer
+ ];
+
+ meta = with lib; {
+ description = "Tool that visualizes massif data generated by valgrind";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ lethalman zraexy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
new file mode 100644
index 000000000000..62de8bdfdaaf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/nix-linter/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fixplate
+, tasty
+, tasty-hunit
+, tasty-th
+, streamly
+, mtl
+, path
+, pretty-terminal
+, text
+, base
+, aeson
+, path-io
+, cmdargs
+, containers
+, hnix
+, bytestring
+}:
+
+mkDerivation rec {
+ pname = "nix-linter-unstable";
+ version = "2020-09-25";
+
+ src = fetchFromGitHub {
+ owner = "Synthetica9";
+ repo = "nix-linter";
+ rev = "2516a8cda41f9bb553a1c3eca38e3dd94ebf53de";
+ sha256 = "07mn2c9v67wsm57jlxv9pqac9hahw4618vngmj2sfbgihx8997kb";
+ };
+
+ isLibrary = false;
+ isExecutable = true;
+ libraryHaskellDepends = [ fixplate ];
+ executableHaskellDepends = [ streamly mtl path pretty-terminal text base aeson cmdargs containers hnix bytestring path-io ];
+ testHaskellDepends = [ tasty tasty-hunit tasty-th ];
+
+ description = "Linter for Nix(pkgs), based on hnix";
+ homepage = "https://github.com/Synthetica9/nix-linter";
+ license = lib.licenses.bsd3;
+ maintainers = [ lib.maintainers.marsam ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/oclgrind/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/oclgrind/default.nix
new file mode 100644
index 000000000000..8cc0477ca592
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/oclgrind/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, llvmPackages, readline, python }:
+
+stdenv.mkDerivation rec {
+ pname = "oclgrind";
+ version = "19.10";
+
+ src = fetchFromGitHub {
+ owner = "jrprice";
+ repo = "oclgrind";
+ rev = "v${version}";
+ sha256 = "12v5z5x3ls26p3y3yc4mqmh12cazc0nlrwvmfbn6cyg4af9dp0zn";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ llvmPackages.llvm llvmPackages.clang-unwrapped readline python ];
+
+ cmakeFlags = [
+ "-DCLANG_ROOT=${llvmPackages.clang-unwrapped}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "An OpenCL device simulator and debugger";
+ homepage = "https://github.com/jrprice/oclgrind";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ athas ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
new file mode 100644
index 000000000000..cbc736e1a26c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, rustPlatform, qt5, git, cmake
+, pkgconfig, makeWrapper }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "panopticon";
+ version = "unstable-20171202";
+
+ src = fetchFromGitHub {
+ owner = "das-labor";
+ repo = pname;
+ rev = "33ffec0d6d379d51b38d6ea00d040f54b1356ae4";
+ sha256 = "1zv87nqhrzsxx0m891df4vagzssj3kblfv9yp7j96dw0vn9950qa";
+ };
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = with qt5; [
+ qt5.qtbase
+ qtdeclarative
+ qtsvg
+ qtquickcontrols2
+ qtgraphicaleffects
+ git
+ ];
+
+ cargoSha256 = "1hdsn011y9invfy7can8c02zwa7birj9y1rxhrj7wyv4gh3659i0";
+ doCheck = false;
+
+ postInstall = ''
+ mkdir -p $out/share/${pname} $out/bin
+ cp -R qml $out/share/${pname}
+ mv $out/bin/${pname} $out/share/${pname}
+ chmod +x $out/share/${pname}
+ makeWrapper $out/share/${pname}/${pname} $out/bin/${pname}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A libre cross-platform disassembler";
+ longDescription = ''
+ Panopticon is a cross platform disassembler for reverse
+ engineering written in Rust. It can disassemble AMD64,
+ x86, AVR and MOS 6502 instruction sets and open ELF files.
+ Panopticon comes with Qt GUI for browsing and annotating
+ control flow graphs.
+ '';
+ license = with licenses; [ gpl3 ];
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pev/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pev/default.nix
new file mode 100644
index 000000000000..cf09d249a9a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pev/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, openssl, fetchFromGitHub }:
+stdenv.mkDerivation {
+ name = "pev-unstable-2018-07-22";
+ buildInputs = [ openssl ];
+ src = fetchFromGitHub {
+ owner = "merces";
+ repo = "pev";
+ rev = "aa4ef7f";
+ sha256 = "00a3g486343lhqcsf4vrdy5xif6v3cgcf2y8yp5b96x15c0wid36";
+ fetchSubmodules = true;
+ };
+
+ makeFlags = [ "prefix=$(out)" ];
+ installFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "pev is a full-featured, open source, multiplatform command line toolkit to work with PE (Portable Executables) binaries";
+ homepage = "http://pev.sourceforge.net/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.jeschli ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
new file mode 100644
index 000000000000..f91cdbead82c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, unzip, makeWrapper, openjdk }:
+
+stdenv.mkDerivation rec {
+ pname = "pmd";
+ version = "6.26.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
+ sha256 = "1vlqwrbqk2cbp8kgxkm61c4blai81ib35yjf6wms16w0hvbqf2b4";
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out
+ cp -R {bin,lib} $out
+ wrapProgram $out/bin/run.sh --prefix PATH : ${openjdk.jre}/bin
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extensible cross-language static code analyzer";
+ homepage = "https://pmd.github.io/";
+ changelog = "https://pmd.github.io/pmd-${version}/pmd_release_notes.html";
+ platforms = platforms.unix;
+ license = with licenses; [ bsdOriginal asl20 lgpl3Plus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
new file mode 100644
index 000000000000..d9f39667ceff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/qcachegrind/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, qmake, qtbase, perl, python, php, kcachegrind }:
+
+let
+ name = stdenv.lib.replaceStrings ["kcachegrind"] ["qcachegrind"] kcachegrind.name;
+
+in stdenv.mkDerivation {
+ inherit name;
+
+ src = kcachegrind.src;
+
+ buildInputs = [ qtbase perl python php ];
+
+ nativeBuildInputs = [ qmake ];
+
+ postInstall = ''
+ mkdir -p $out/bin
+ cp -p converters/dprof2calltree $out/bin/dprof2calltree
+ cp -p converters/hotshot2calltree.cmake $out/bin/hotshot2calltree
+ cp -p converters/memprof2calltree $out/bin/memprof2calltree
+ cp -p converters/op2calltree $out/bin/op2calltree
+ cp -p converters/pprof2calltree $out/bin/pprof2calltree
+ chmod -R +x $out/bin/
+ '' + (if stdenv.isDarwin then ''
+ mkdir -p $out/Applications
+ cp cgview/cgview.app/Contents/MacOS/cgview $out/bin
+ cp -a qcachegrind/qcachegrind.app $out/Applications
+ '' else ''
+ install qcachegrind/qcachegrind cgview/cgview -t "$out/bin"
+ install -Dm644 qcachegrind/qcachegrind.desktop -t "$out/share/applications"
+ install -Dm644 kcachegrind/32-apps-kcachegrind.png "$out/share/icons/hicolor/32x32/apps/kcachegrind.png"
+ install -Dm644 kcachegrind/48-apps-kcachegrind.png "$out/share/icons/hicolor/48x48/apps/kcachegrind.png"
+ '');
+
+ meta = with stdenv.lib; {
+ description = "A Qt GUI to visualize profiling data";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ periklis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
new file mode 100644
index 000000000000..1cef52a34443
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub
+# nativeBuildInputs
+, qmake, pkgconfig
+# Qt
+, qtbase, qtsvg, qtwebengine
+# buildInputs
+, r2-for-cutter
+, python3
+, wrapQtAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "radare2-cutter";
+ version = "1.12.0";
+
+ src = fetchFromGitHub {
+ owner = "radareorg";
+ repo = "cutter";
+ rev = "v${version}";
+ sha256 = "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0";
+ };
+
+ postUnpack = "export sourceRoot=$sourceRoot/src";
+
+ # Remove this "very helpful" helper file intended for discovering r2,
+ # as it's a doozy of harddcoded paths and unexpected behavior.
+ # Happily Nix has everything all set so we don't need it,
+ # other than as basis for the qmakeFlags set below.
+ postPatch = ''
+ substituteInPlace Cutter.pro \
+ --replace "include(lib_radare2.pri)" ""
+ '';
+
+ nativeBuildInputs = [ qmake pkgconfig ];
+ buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 wrapQtAppsHook ];
+
+ qmakeFlags = [
+ "CONFIG+=link_pkgconfig"
+ "PKGCONFIG+=r_core"
+ # Leaving this enabled doesn't break build but generates errors
+ # at runtime (to console) about being unable to load needed bits.
+ # Disable until can be looked at.
+ "CUTTER_ENABLE_JUPYTER=false"
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A Qt and C++ GUI for radare2 reverse engineering framework";
+ homepage = src.meta.homepage;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ mic92 dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
new file mode 100644
index 000000000000..e86ef2532498
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
@@ -0,0 +1,133 @@
+{stdenv, fetchFromGitHub
+, buildPackages
+, pkgconfig
+, libusb-compat-0_1, readline, libewf, perl, zlib, openssl
+, libuv, file, libzip, xxHash
+, gtk2 ? null, vte ? null, gtkdialog ? null
+, python3 ? null
+, ruby ? null
+, lua ? null
+, useX11 ? false
+, rubyBindings ? false
+, pythonBindings ? false
+, luaBindings ? false
+}:
+
+assert useX11 -> (gtk2 != null && vte != null && gtkdialog != null);
+assert rubyBindings -> ruby != null;
+assert pythonBindings -> python3 != null;
+
+
+let
+ inherit (stdenv.lib) optional;
+
+ generic = {
+ version_commit, # unused
+ gittap,
+ gittip,
+ rev,
+ version,
+ sha256,
+ cs_ver,
+ cs_sha256
+ }:
+ stdenv.mkDerivation {
+ pname = "radare2";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "radare";
+ repo = "radare2";
+ inherit rev sha256;
+ };
+
+ postPatch = let
+ capstone = fetchFromGitHub {
+ owner = "aquynh";
+ repo = "capstone";
+ # version from $sourceRoot/shlr/Makefile
+ rev = cs_ver;
+ sha256 = cs_sha256;
+ };
+ in ''
+ mkdir -p build/shlr
+ cp -r ${capstone} capstone-${cs_ver}
+ chmod -R +w capstone-${cs_ver}
+ # radare 3.3 compat for radare2-cutter
+ (cd shlr && ln -s ../capstone-${cs_ver} capstone)
+ tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
+ # necessary because they broke the offline-build:
+ # https://github.com/radare/radare2/commit/6290e4ff4cc167e1f2c28ab924e9b99783fb1b38#diff-a44d840c10f1f1feaf401917ae4ccd54R258
+ # https://github.com/radare/radare2/issues/13087#issuecomment-465159716
+ curl() { true; }
+ export -f curl
+ '';
+
+ postInstall = ''
+ install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
+ '';
+
+ WITHOUT_PULL="1";
+ makeFlags = [
+ "GITTAP=${gittap}"
+ "GITTIP=${gittip}"
+ "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
+ ];
+ configureFlags = [
+ "--with-sysmagic"
+ "--with-syszip"
+ "--with-sysxxhash"
+ "--with-openssl"
+ ];
+
+ enableParallelBuilding = true;
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
+ ++ optional useX11 [ gtkdialog vte gtk2 ]
+ ++ optional rubyBindings [ ruby ]
+ ++ optional pythonBindings [ python3 ]
+ ++ optional luaBindings [ lua ];
+
+ propagatedBuildInputs = [
+ # radare2 exposes r_lib which depends on these libraries
+ file # for its list of magic numbers (`libmagic`)
+ libzip
+ xxHash
+ ];
+
+ meta = {
+ description = "unix-like reverse engineering framework and commandline tools";
+ homepage = "http://radare.org/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ raskin makefu mic92 ];
+ platforms = with stdenv.lib.platforms; linux;
+ inherit version;
+ };
+ };
+in {
+ #<generated>
+ # DO NOT EDIT! Automatically generated by ./update.py
+ radare2 = generic {
+ version_commit = "24959";
+ gittap = "4.5.1";
+ gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
+ rev = "4.5.1";
+ version = "4.5.1";
+ sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
+ cs_ver = "4.0.2";
+ cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
+ };
+ r2-for-cutter = generic {
+ version_commit = "24959";
+ gittap = "4.5.1";
+ gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
+ rev = "4.5.1";
+ version = "4.5.1";
+ sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
+ cs_ver = "4.0.2";
+ cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
+ };
+ #</generated>
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/update.py b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
new file mode 100755
index 000000000000..ebd6e073fe53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix -p python3 -p git -i python
+# USAGE - just run the script: ./update.py
+# When editing this file, make also sure it passes the mypy typecheck
+# and is formatted with black.
+import fileinput
+import json
+import xml.etree.ElementTree as ET
+from urllib.parse import urlparse
+import re
+import subprocess
+import tempfile
+import urllib.request
+from datetime import datetime
+from pathlib import Path
+from typing import Dict
+
+SCRIPT_DIR = Path(__file__).parent.resolve()
+
+
+def sh(*args: str) -> str:
+ out = subprocess.check_output(list(args))
+ return out.strip().decode("utf-8")
+
+
+def prefetch_github(owner: str, repo: str, ref: str) -> str:
+ return sh(
+ "nix-prefetch-url",
+ "--unpack",
+ f"https://github.com/{owner}/{repo}/archive/{ref}.tar.gz",
+ )
+
+
+def get_radare2_rev() -> str:
+ feed_url = "http://github.com/radareorg/radare2/releases.atom"
+ with urllib.request.urlopen(feed_url) as resp:
+ tree = ET.fromstring(resp.read())
+ releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry")
+ for release in releases:
+ link = release.find("{http://www.w3.org/2005/Atom}link")
+ assert link is not None
+ url = urlparse(link.attrib["href"])
+ tag = url.path.split("/")[-1]
+ if re.match(r"[0-9.]+", tag):
+ return tag
+ else:
+ print(f"ignore {tag}")
+ raise RuntimeError(f"No release found at {feed_url}")
+
+
+def get_cutter_version() -> str:
+ version_expr = """
+(with import <nixpkgs> {}; lib.getVersion (qt5.callPackage <radare2/cutter.nix> {}))
+"""
+ return sh("nix", "eval", "--raw", version_expr.strip(), "-I", "radare2={0}".format(SCRIPT_DIR))
+
+
+def get_r2_cutter_rev() -> str:
+ version = get_cutter_version()
+ url = f"https://api.github.com/repos/radareorg/cutter/contents?ref=v{version}"
+ with urllib.request.urlopen(url) as response:
+ data = json.load(response) # type: ignore
+ for entry in data:
+ if entry["name"] == "radare2":
+ return entry["sha"]
+ raise Exception("no radare2 submodule found in github.com/radareorg/cutter")
+
+
+def git(dirname: str, *args: str) -> str:
+ return sh("git", "-C", dirname, *args)
+
+
+def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
+ sha256 = prefetch_github("radare", "radare2", rev)
+
+ cs_ver = None
+ with open(Path(dirname).joinpath("shlr", "Makefile")) as makefile:
+ for l in makefile:
+ match = re.match("CS_VER=(\S+)", l)
+ if match:
+ cs_ver = match.group(1)
+ assert cs_ver is not None
+
+ cs_sha256 = prefetch_github("aquynh", "capstone", cs_ver)
+
+ return dict(
+ rev=rev,
+ sha256=sha256,
+ version_commit=git(dirname, "rev-list", "--all", "--count"),
+ gittap=git(dirname, "describe", "--tags", "--match", "[0-9]*"),
+ gittip=git(dirname, "rev-parse", "HEAD"),
+ cs_ver=cs_ver,
+ cs_sha256=cs_sha256,
+ )
+
+
+def write_package_expr(version: str, info: Dict[str, str]) -> str:
+ return f"""generic {{
+ version_commit = "{info["version_commit"]}";
+ gittap = "{info["gittap"]}";
+ gittip = "{info["gittip"]}";
+ rev = "{info["rev"]}";
+ version = "{version}";
+ sha256 = "{info["sha256"]}";
+ cs_ver = "{info["cs_ver"]}";
+ cs_sha256 = "{info["cs_sha256"]}";
+ }}"""
+
+
+def main() -> None:
+ radare2_rev = get_radare2_rev()
+ r2_cutter_rev = get_r2_cutter_rev()
+
+ with tempfile.TemporaryDirectory() as dirname:
+ git(
+ dirname,
+ "clone",
+ "--branch",
+ radare2_rev,
+ "https://github.com/radare/radare2",
+ ".",
+ )
+ nix_file = str(SCRIPT_DIR.joinpath("default.nix"))
+
+ radare2_info = get_repo_info(dirname, radare2_rev)
+
+ git(dirname, "checkout", r2_cutter_rev)
+
+ timestamp = git(dirname, "log", "-n1", "--format=%at")
+ r2_cutter_version = datetime.fromtimestamp(int(timestamp)).strftime("%Y-%m-%d")
+
+ r2_cutter_info = get_repo_info(dirname, r2_cutter_rev)
+
+ in_block = False
+ with fileinput.FileInput(nix_file, inplace=True) as f:
+ for l in f:
+ if "#<generated>" in l:
+ in_block = True
+ print(
+ f""" #<generated>
+ # DO NOT EDIT! Automatically generated by ./update.py
+ radare2 = {write_package_expr(radare2_rev, radare2_info)};
+ r2-for-cutter = {write_package_expr(r2_cutter_version, r2_cutter_info)};
+ #</generated>"""
+ )
+ elif "#</generated>" in l:
+ in_block = False
+ elif not in_block:
+ print(l, end="")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
new file mode 100644
index 000000000000..0e57509d9f73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+ version = "4.2.4";
+ pname = "randoop";
+
+ src = fetchurl {
+ url = "https://github.com/randoop/randoop/releases/download/v${version}/${pname}-${version}.zip";
+ sha256 = "1p6l5xzz7cbhrk5wy3906llhnwk0l8nck53pvi0l57kz7bdnag5w";
+ };
+
+ buildInputs = [ unzip ];
+
+ installPhase = ''
+ mkdir -p $out/lib $out/doc
+
+ cp -R *.jar $out/lib
+ cp README.txt $out/doc
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatic test generation for Java";
+ homepage = "https://randoop.github.io/randoop/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/default.nix
new file mode 100644
index 000000000000..55c077f932d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/default.nix
@@ -0,0 +1,236 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchzip
+, lib
+, callPackage
+, openssl
+, cmake
+, autoconf
+, automake
+, libtool
+, pkgconfig
+, bison
+, flex
+, groff
+, perl
+, python3
+, time
+, upx
+, ncurses
+, libffi
+, libxml2
+, zlib
+, withPEPatterns ? false
+}:
+
+let
+ capstone = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "capstone";
+ rev = "27c713fe4f6eaf9721785932d850b6291a6073fe";
+ sha256 = "105z1g9q7s6n15qpln9vzhlij7vj6cyc5dqdr05n7wzjvlagwgxc";
+ };
+ elfio = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "elfio";
+ rev = "998374baace397ea98f3b1d768e81c978b4fba41";
+ sha256 = "09n34rdp0wpm8zy30zx40wkkc4gbv2k3cv181y6c1260rllwk5d1";
+ };
+ keystone = fetchFromGitHub { # only for tests
+ owner = "keystone-engine";
+ repo = "keystone";
+ rev = "d7ba8e378e5284e6384fc9ecd660ed5f6532e922";
+ sha256 = "1yzw3v8xvxh1rysh97y0i8y9svzbglx2zbsqjhrfx18vngh0x58f";
+ };
+ libdwarf = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "libdwarf";
+ rev = "85465d5e235cc2d2f90d04016d6aca1a452d0e73";
+ sha256 = "11y62r65py8yp57i57a4cymxispimn62by9z4j2g19hngrpsgbki";
+ };
+ llvm = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "llvm";
+ rev = "725d0cee133c6ab9b95c493f05de3b08016f5c3c";
+ sha256 = "0dzvafmn4qs62w1y9vh0a11clpj6q3hb41aym4izpcyybjndf9bq";
+ };
+ pelib = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "pelib";
+ rev = "a7004b2e80e4f6dc984f78b821e7b585a586050d";
+ sha256 = "0nyrb3g749lxgcymz1j584xbb1x6rvy1mc700lyn0brznvqsm81n";
+ };
+ rapidjson = fetchFromGitHub {
+ owner = "Tencent";
+ repo = "rapidjson";
+ rev = "v1.1.0";
+ sha256 = "1jixgb8w97l9gdh3inihz7avz7i770gy2j2irvvlyrq3wi41f5ab";
+ };
+ yaracpp = callPackage ./yaracpp.nix {}; # is its own package because it needs a patch
+ yaramod = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "yaramod";
+ rev = "v2.2.2";
+ sha256 = "0cq9h4h686q9ybamisbl797g6xjy211s3cq83nixkwkigmz48ccp";
+ };
+ jsoncpp = fetchFromGitHub {
+ owner = "open-source-parsers";
+ repo = "jsoncpp";
+ rev = "1.8.4";
+ sha256 = "1z0gj7a6jypkijmpknis04qybs1hkd04d1arr3gy89lnxmp6qzlm";
+ };
+ googletest = fetchFromGitHub { # only for tests
+ owner = "google";
+ repo = "googletest";
+ rev = "83fa0cb17dad47a1d905526dcdddb5b96ed189d2";
+ sha256 = "1c2r0p9v7vz2vasy8bknfb448l6wsvzw35s8hmc5z013z5502mpk";
+ };
+ tinyxml2 = fetchFromGitHub {
+ owner = "leethomason";
+ repo = "tinyxml2";
+ rev = "cc1745b552dd12bb1297a99f82044f83b06729e0";
+ sha256 = "015g8520a0c55gwmv7pfdsgfz2rpdmh3d1nq5n9bd65n35492s3q";
+ };
+
+ retdec-support = let
+ version = "2018-02-08"; # make sure to adjust both hashes (once with withPEPatterns=true and once withPEPatterns=false)
+ in fetchzip {
+ url = "https://github.com/avast-tl/retdec-support/releases/download/${version}/retdec-support_${version}.tar.xz";
+ sha256 = if withPEPatterns then "148i8flbyj1y4kfdyzsz7jsj38k4h97npjxj18h6v4wksd4m4jm7"
+ else "0ixv9qyqq40pzyqy6v9jf5rxrvivjb0z0zn260nbmb9gk765bacy";
+ stripRoot = false;
+ # Removing PE signatures reduces this from 3.8GB -> 642MB (uncompressed)
+ extraPostFetch = lib.optionalString (!withPEPatterns) ''
+ rm -r "$out/generic/yara_patterns/static-code/pe"
+ '';
+ } // {
+ inherit version; # necessary to check the version against the expected version
+ };
+
+ # patch CMakeLists.txt for a dependency and compare the versions to the ones expected by upstream
+ # this has to be applied for every dependency (which it is in postPatch)
+ patchDep = dep: ''
+ # check if our version of dep is the same version that upstream expects
+ echo "Checking version of ${dep.dep_name}"
+ expected_rev="$( sed -n -e 's|.*URL https://github.com/.*/archive/\(.*\)\.zip.*|\1|p' "deps/${dep.dep_name}/CMakeLists.txt" )"
+ if [ "$expected_rev" != '${dep.rev}' ]; then
+ echo "The ${dep.dep_name} dependency has the wrong version: ${dep.rev} while $expected_rev is expected."
+ exit 1
+ fi
+
+ # patch the CMakeLists.txt file to use our local copy of the dependency instead of fetching it at build time
+ sed -i -e 's|URL .*|URL ${dep}|' "deps/${dep.dep_name}/CMakeLists.txt"
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "retdec";
+
+ # If you update this you will also need to adjust the versions of the updated dependencies. You can do this by first just updating retdec
+ # itself and trying to build it. The build should fail and tell you which dependencies you have to upgrade to which versions.
+ # I've notified upstream about this problem here:
+ # https://github.com/avast-tl/retdec/issues/412
+ # gcc is pinned to gcc8 in all-packages.nix. That should probably be re-evaluated on update.
+ version = "3.2";
+
+ src = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "retdec";
+ name = "retdec-${version}";
+ rev = "refs/tags/v${version}";
+ sha256 = "0chky656lsddn20bnm3pmz6ix20y4a0y8swwr42hrhi01vkhmzrp";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ autoconf
+ automake
+ libtool
+ pkgconfig
+ bison
+ flex
+ groff
+ perl
+ python3
+ ];
+
+ buildInputs = [
+ openssl
+ ncurses
+ libffi
+ libxml2
+ zlib
+ ];
+
+ cmakeFlags = [
+ "-DRETDEC_TESTS=ON" # build tests
+ ];
+
+ # all dependencies that are normally fetched during build time (the subdirectories of `deps`)
+ # all of these need to be fetched through nix and the CMakeLists files need to be patched not to fetch them themselves
+ external_deps = [
+ (capstone // { dep_name = "capstone"; })
+ (elfio // { dep_name = "elfio"; })
+ (googletest // { dep_name = "googletest"; })
+ (jsoncpp // { dep_name = "jsoncpp"; })
+ (keystone // { dep_name = "keystone"; })
+ (libdwarf // { dep_name = "libdwarf"; })
+ (llvm // { dep_name = "llvm"; })
+ (pelib // { dep_name = "pelib"; })
+ (rapidjson // { dep_name = "rapidjson"; })
+ (tinyxml2 // { dep_name = "tinyxml2"; })
+ (yaracpp // { dep_name = "yaracpp"; })
+ (yaramod // { dep_name = "yaramod"; })
+ ];
+
+ # Use newer yaramod to fix w/bison 3.2+
+ patches = [
+ # 2.1.2 -> 2.2.1
+ (fetchpatch {
+ url = "https://github.com/avast-tl/retdec/commit/c9d23da1c6e23c149ed684c6becd3f3828fb4a55.patch";
+ sha256 = "0hdq634f72fihdy10nx2ajbps561w03dfdsy5r35afv9fapla6mv";
+ })
+ # 2.2.1 -> 2.2.2
+ (fetchpatch {
+ url = "https://github.com/avast-tl/retdec/commit/fb85f00754b5d13b781385651db557741679721e.patch";
+ sha256 = "0a8mwmwb39pr5ag3q11nv81ncdk51shndqrkm92shqrmdq14va52";
+ })
+ ];
+
+ postPatch = (lib.concatMapStrings patchDep external_deps) + ''
+ # install retdec-support
+ echo "Checking version of retdec-support"
+ expected_version="$( sed -n -e "s|^version = '\(.*\)'$|\1|p" 'cmake/install-share.py' )"
+ if [ "$expected_version" != '${retdec-support.version}' ]; then
+ echo "The retdec-support dependency has the wrong version: ${retdec-support.version} while $expected_version is expected."
+ exit 1
+ fi
+ mkdir -p "$out/share/retdec"
+ cp -r ${retdec-support} "$out/share/retdec/support" # write permission needed during install
+ chmod -R u+w "$out/share/retdec/support"
+ # python file originally responsible for fetching the retdec-support archive to $out/share/retdec
+ # that is not necessary anymore, so empty the file
+ echo > cmake/install-share.py
+
+ # call correct `time` and `upx` programs
+ substituteInPlace scripts/retdec-config.py --replace /usr/bin/time ${time}/bin/time
+ substituteInPlace scripts/retdec-unpacker.py --replace "'upx'" "'${upx}/bin/upx'"
+ '';
+
+ enableParallelBuilding = true;
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ ${python3.interpreter} "$out/bin/retdec-tests-runner.py"
+
+ rm -rf $out/bin/__pycache__
+ '';
+
+ meta = with lib; {
+ description = "A retargetable machine-code decompiler based on LLVM";
+ homepage = "https://retdec.com";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill timokau ];
+ platforms = ["x86_64-linux" "i686-linux"];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/yaracpp.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/yaracpp.nix
new file mode 100644
index 000000000000..c8bc4ed747b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/retdec/yaracpp.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, coreutils
+}:
+
+let
+ yara = fetchFromGitHub {
+ owner = "avast-tl";
+ repo = "yara";
+ rev = "ea101c5856941f39cad2db3012f2660d1d5c8b65";
+ sha256 = "033ssx2hql5k4pv9si043s3mjq2b748ymjzif8pg6rdwh260faky";
+ };
+in stdenv.mkDerivation rec {
+ # only fetches the yaracpp source patched to work with a local yara clone,
+ # does not build anything
+ pname = "yaracpp-src";
+ version = "2018-10-09";
+ rev = "b92bde0e59e3b75bc445227e04b71105771dee8b"; # as specified in retdec/deps/yaracpp/CMakeLists.txt
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "avast-tl";
+ repo = "yaracpp";
+ sha256 = "0fan7q79j7s3bjmhsd2nw6sqyi14xgikn7mr2p4nj87lick5l4a2";
+ };
+
+ postPatch = ''
+ # check if our version of yara is the same version that upstream expects
+ echo "Checking version of yara"
+ expected_rev="$( sed -n -e 's|.*URL https://github.com/.*/archive/\(.*\)\.zip.*|\1|p' "deps/CMakeLists.txt" )"
+ if [ "$expected_rev" != '${yara.rev}' ]; then
+ echo "The yara dependency has the wrong version: ${yara.rev} while $expected_rev is expected."
+ exit 1
+ fi
+
+ # patch the CMakeLists.txt file to use our local copy of the dependency instead of fetching it at build time
+ sed -i -e "s|URL .*|URL ${yara}|" "deps/CMakeLists.txt"
+
+ # abuse the CONFIGURE_COMMAND to make the source writeable after copying it to the build locatoin (necessary for the build)
+ sed -i -e 's|CONFIGURE_COMMAND ""|CONFIGURE_COMMAND COMMAND ${coreutils}/bin/chmod -R u+w .|' "deps/CMakeLists.txt"
+ '';
+
+ buildPhase = "# do nothing";
+ configurePhase = "# do nothing";
+ installPhase = ''
+ mkdir -p "$out"
+ cp -r * "$out"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/default.nix
new file mode 100644
index 000000000000..47832c5ae2a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, cmake, libpfm, zlib, pkgconfig, python3Packages, which, procps, gdb, capnproto }:
+
+stdenv.mkDerivation rec {
+ version = "5.3.0";
+ pname = "rr";
+
+ src = fetchFromGitHub {
+ owner = "mozilla";
+ repo = "rr";
+ rev = version;
+ sha256 = "1x6l1xsdksnhz9v50p4r7hhmr077cq20kaywqy1jzdklvkjqzf64";
+ };
+
+ postPatch = ''
+ substituteInPlace src/Command.cc --replace '_BSD_SOURCE' '_DEFAULT_SOURCE'
+ sed '7i#include <math.h>' -i src/Scheduler.cc
+ patchShebangs .
+ '';
+
+ # TODO: remove this preConfigure hook after 5.2.0 since it is fixed upstream
+ # see https://github.com/mozilla/rr/issues/2269
+ preConfigure = ''substituteInPlace CMakeLists.txt --replace "std=c++11" "std=c++14"'';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ cmake libpfm zlib python3Packages.python python3Packages.pexpect which procps gdb capnproto
+ ];
+ propagatedBuildInputs = [ gdb ]; # needs GDB to replay programs at runtime
+ cmakeFlags = [
+ "-DCMAKE_C_FLAGS_RELEASE:STRING="
+ "-DCMAKE_CXX_FLAGS_RELEASE:STRING="
+ "-Ddisable32bit=ON"
+ ];
+
+ # we turn on additional warnings due to hardening
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ hardeningDisable = [ "fortify" ];
+
+ enableParallelBuilding = true;
+
+ # FIXME
+ #doCheck = true;
+
+ preCheck = "export HOME=$TMPDIR";
+
+ meta = {
+ homepage = "https://rr-project.org/";
+ description = "Records nondeterministic executions and debugs them deterministically";
+ longDescription = ''
+ rr aspires to be your primary debugging tool, replacing -- well,
+ enhancing -- gdb. You record a failure once, then debug the
+ recording, deterministically, as many times as you want. Every
+ time the same execution is replayed.
+ '';
+
+ license = with stdenv.lib.licenses; [ mit bsd2 ];
+ maintainers = with stdenv.lib.maintainers; [ pierron thoughtpolice ];
+ platforms = stdenv.lib.platforms.x86;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix
new file mode 100644
index 000000000000..82b644f76ae6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/rr/unstable.nix
@@ -0,0 +1,23 @@
+# This is a temporary copy of the default.nix in this folder, with the version updated to the current tip of rr's master branch.
+# This exists because rr has not had a release in a long time, but there have been a lot of improvements including UX.
+# Some of the UX improvements help prevent foot shooting.
+# Upstream has stated that it should be fine to use master.
+# This file, and its attribute in all-packages, can be removed once rr makes a release.
+# For further information, please see https://github.com/NixOS/nixpkgs/issues/99535 "Improve support for the rr debugger in nixos containers"
+
+{ callPackage, fetchFromGitHub }:
+
+let
+ rr = callPackage ./. {};
+in
+
+ rr.overrideAttrs (old: {
+ version = "unstable-2020-10-04";
+
+ src = fetchFromGitHub {
+ owner = "mozilla";
+ repo = "rr";
+ rev = "9ff375813a740a0a6ebcdfcebc58bd61ab68c667";
+ sha256 = "0raifs6cg5ckpi2445inhy3hfhp4p89s1lkx9z17mcc2g1c1phf5";
+ };
+ })
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix
new file mode 100644
index 000000000000..1443c31192df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/smatch/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchgit, sqlite, pkgconfig, perl
+, buildllvmsparse ? true
+, buildc2xml ? true
+, llvm ? null, libxml2 ? null
+}:
+
+assert buildllvmsparse -> llvm != null;
+assert buildc2xml -> libxml2 != null;
+
+stdenv.mkDerivation {
+ name = "smatch-20120924";
+
+ src = fetchgit {
+ url = "git://repo.or.cz/smatch.git";
+ rev = "23656e3e578b700cbf96d043f039e6341a3ba5b9";
+ sha256 = "0r43qi6vryqg450fj73yjwbb7gzcgx64rhrhb3r1m6a252srijiy";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [sqlite perl]
+ ++ stdenv.lib.optional buildllvmsparse llvm
+ ++ stdenv.lib.optional buildc2xml libxml2;
+
+ preBuild =
+ '' sed -i Makefile \
+ -e "s|^PREFIX=.*|PREFIX = $out|g"
+ '';
+
+ meta = {
+ description = "A semantic analysis tool for C";
+ homepage = "http://smatch.sourceforge.net/";
+ license = stdenv.lib.licenses.free; /* OSL, see http://www.opensource.org */
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/snowman/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/snowman/default.nix
new file mode 100644
index 000000000000..2f7ff219081f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/snowman/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, boost, qtbase }:
+
+mkDerivation rec {
+ pname = "snowman";
+ version = "0.1.3";
+
+ src = fetchFromGitHub {
+ owner = "yegord";
+ repo = "snowman";
+ rev = "v${version}";
+ sha256 = "1mrmhj2nddi0d47c266vsg5vbapbqbcpj5ld4v1qcwnnk6z2zn0j";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ boost qtbase ];
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/src
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Native code to C/C++ decompiler";
+ homepage = "http://derevenets.com/";
+
+ # https://github.com/yegord/snowman/blob/master/doc/licenses.asciidoc
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/sparse/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/sparse/default.nix
new file mode 100644
index 000000000000..945f6c80af52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/sparse/default.nix
@@ -0,0 +1,26 @@
+{ fetchurl, stdenv, pkgconfig, libxml2, llvm }:
+
+stdenv.mkDerivation rec {
+ name = "sparse-0.5.0";
+
+ src = fetchurl {
+ url = "mirror://kernel/software/devel/sparse/dist/${name}.tar.xz";
+ sha256 = "1mc86jc5xdrdmv17nqj2cam2yqygnj6ar1iqkwsx2y37ij8wy7wj";
+ };
+
+ preConfigure = ''
+ sed -i Makefile -e "s|^PREFIX=.*$|PREFIX=$out|g"
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libxml2 llvm ];
+ doCheck = true;
+
+ meta = {
+ description = "Semantic parser for C";
+ homepage = "https://git.kernel.org/cgit/devel/sparse/sparse.git/";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/spin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/spin/default.nix
new file mode 100644
index 000000000000..73e88f9811c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/spin/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchurl, makeWrapper, yacc, gcc
+, withISpin ? true, tk, swarm, graphviz }:
+
+let
+ binPath = stdenv.lib.makeBinPath [ gcc ];
+ ibinPath = stdenv.lib.makeBinPath [ gcc tk swarm graphviz tk ];
+
+in stdenv.mkDerivation rec {
+ pname = "spin";
+ version = "6.4.9";
+ url-version = stdenv.lib.replaceChars ["."] [""] version;
+
+ src = fetchurl {
+ # The homepage is behind CloudFlare anti-DDoS protection, which blocks cURL.
+ # Dropbox mirror from developers:
+ # https://www.dropbox.com/sh/fgzipzp4wpo3qc1/AADZPqS4aoR-pjNF6OQXRLQHa
+ # (note that this URL doesn't work aross versions and hash should come from official site)
+ url = "https://www.dropbox.com/sh/fgzipzp4wpo3qc1/AABtxFePMJmPxsxSvU5cpxh8a/spin${url-version}.tar.gz?raw=1";
+ sha256 = "07b7wk3qyfnp4pgwicqd33l7i1krzyihx0cf9zkv81ywaklf5vll";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ yacc ];
+
+ sourceRoot = "Spin/Src${version}";
+
+ installPhase = ''
+ install -Dm644 ../Man/spin.1 $out/share/man/man1/spin.1
+
+ install -Dm755 spin $out/bin/spin
+ wrapProgram $out/bin/spin \
+ --prefix PATH : ${binPath}
+ '' + lib.optionalString withISpin ''
+ install -Dm755 ../iSpin/ispin.tcl $out/bin/ispin
+ wrapProgram $out/bin/ispin \
+ --prefix PATH ':' "$out/bin:${ibinPath}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Formal verification tool for distributed software systems";
+ homepage = "http://spinroot.com/";
+ license = licenses.free;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/darwin.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/darwin.patch
new file mode 100644
index 000000000000..8c435707571d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/darwin.patch
@@ -0,0 +1,13 @@
+diff --git a/src/osd.c b/src/osd.c
+index ebe214a..4ba81d5 100644
+--- a/src/osd.c
++++ b/src/osd.c
+@@ -516,7 +516,7 @@ osd_getPid ()
+ # if defined (WIN32) || defined (OS2) && defined (__IBMC__)
+ int pid = _getpid ();
+ # else
+- __pid_t pid = getpid ();
++ pid_t pid = getpid ();
+ # endif
+
+ return (int) pid;
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/default.nix
new file mode 100644
index 000000000000..4dc93897e869
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, flex }:
+
+stdenv.mkDerivation rec {
+ name = "splint-3.1.2";
+
+ src = fetchurl {
+ url = "http://www.splint.org/downloads/${name}.src.tgz";
+ sha256 = "02pv8kscsrkrzip9r08pfs9xs98q74c52mlxzbii6cv6vx1vd3f7";
+ };
+
+ patches = [ ./tmpdir.patch ] ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
+
+ buildInputs = [ flex ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.splint.org/";
+ description = "Annotation-assisted lightweight static analyzer for C";
+
+ longDescription = ''
+ Splint is a tool for statically checking C programs for security
+ vulnerabilities and coding mistakes. With minimal effort, Splint
+ can be used as a better lint. If additional effort is invested
+ adding annotations to programs, Splint can perform stronger
+ checking than can be done by any standard lint.
+ '';
+
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/tmpdir.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/tmpdir.patch
new file mode 100644
index 000000000000..01402ce943bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/splint/tmpdir.patch
@@ -0,0 +1,16 @@
+Have Splint honor $TMPDIR.
+
+--- splint-3.1.2/src/context.c 2004-07-31 21:04:26.000000000 +0200
++++ splint-3.1.2/src/context.c 2008-07-11 10:55:16.000000000 +0200
+@@ -801,7 +801,10 @@ context_resetAllFlags (void)
+ val = cstring_makeLiteral (env != NULL ? env : DEFAULT_TMPDIR);
+ }
+ # else
+- val = cstring_makeLiteral (DEFAULT_TMPDIR);
++ {
++ char *env = getenv ("TMPDIR");
++ val = cstring_makeLiteral (env != NULL ? env : DEFAULT_TMPDIR);
++ }
+ # endif /* !defined(OS2) && !defined(MSDOS) */
+
+ break;
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
new file mode 100644
index 000000000000..adf17dabecee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "svlint";
+ version = "0.4.7";
+
+ src = fetchFromGitHub {
+ owner = "dalance";
+ repo = "svlint";
+ rev = "v${version}";
+ sha256 = "0gn68achvhyxljvhw5rwraxjcgdwrl1bwbsn596ka15nrk4lwb34";
+ };
+
+ cargoSha256 = "0v94zsh4jhzjnqbkgwn8rjbs72i5cw2nmkwn7xhdbbwxh17a88x4";
+
+ meta = with lib; {
+ description = "SystemVerilog linter";
+ homepage = "https://github.com/dalance/svlint";
+ license = licenses.mit;
+ maintainers = with maintainers; [ trepetti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
new file mode 100644
index 000000000000..03f218546ebf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/swarm/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ name = "swarm-2019-03-11";
+
+ src = fetchFromGitHub {
+ owner = "nimble-code";
+ repo = "swarm";
+ rev = "4b36ed83c8fbb074f2dc5777fe1c0ab4d73cc7d9";
+ sha256 = "18zwlwsiiksivjpg6agmbmg0zsw2fl9475ss66b6pgcsya2q4afs";
+ };
+
+ installPhase = ''
+ install -Dm755 Src/swarm $out/bin/swarm
+ install -Dm644 Doc/swarm.1 $out/share/man/man1/swarm.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Verification script generator for Spin";
+ homepage = "http://spinroot.com/";
+ license = licenses.free;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ abbradar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
new file mode 100644
index 000000000000..fe7b834e8e81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "tflint";
+ version = "0.20.2";
+
+ src = fetchFromGitHub {
+ owner = "terraform-linters";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "123ndg7byrflczxzhk2c48bb8wlwgqzf1m0dzi0mnw3h52qiqjyp";
+ };
+
+ vendorSha256 = "1prf1hffvwl2hdkrr8hqz1wwcz2n9dzhf68ziz5k3fzsx30jki9l";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "Terraform linter focused on possible errors, best practices, and so on";
+ homepage = "https://github.com/terraform-linters/tflint";
+ changelog = "https://github.com/terraform-linters/tflint/releases/tag/v${version}";
+ license = licenses.mpl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
new file mode 100644
index 000000000000..e10052203edb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "tfsec";
+ version = "0.27.0";
+
+ src = fetchFromGitHub {
+ owner = "liamg";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "12n6l18g0kg28clzyzwc2lq9rnch3vshp07isgvfp7193bhf8hyv";
+ };
+
+ goPackagePath = "github.com/liamg/tfsec";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/liamg/tfsec";
+ description = "Static analysis powered security scanner for your terraform code";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix
new file mode 100644
index 000000000000..0ad042d74def
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/uefi-firmware-parser/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3, fetchFromGitHub }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "uefi-firmware-parser";
+ version = "1.8";
+
+ # Version 1.8 is not published on pypi
+ src = fetchFromGitHub {
+ owner = "theopolis";
+ repo = "uefi-firmware-parser";
+ rev = "v${version}";
+ sha256 = "1yn9vi91j1yxkn0icdnjhgl0qrqqkzyhccj39af4f19q1gdw995l";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/theopolis/uefi-firmware-parser/";
+ description = "Parse BIOS/Intel ME/UEFI firmware related structures: Volumes, FileSystems, Files, etc";
+ # MIT + license headers in some files
+ license = with licenses; [
+ mit
+ zlib # uefi_firmware/me.py
+ bsd2 # uefi_firmware/compression/Tiano/**/*
+ publicDomain # uefi_firmware/compression/LZMA/SDK/C/*
+ ];
+ platforms = [ "x86_64-linux" "aarch64-linux" ];
+ maintainers = [ maintainers.samueldr ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch
new file mode 100644
index 000000000000..cd09f0edff37
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/coregrind-makefile-race.patch
@@ -0,0 +1,41 @@
+From 7820fc268fae4353118b6355f1d4b9e1b7eeebec Mon Sep 17 00:00:00 2001
+From: Philippe Waroquiers <philippe.waroquiers@skynet.be>
+Date: Sun, 28 Oct 2018 18:35:11 +0100
+Subject: [PATCH 1/1] Fix dependencies between libcoregrind*.a and
+ *m_main.o/*m_libcsetjmp.o
+
+The primary and secondary coregrind libraries must be updated
+when m_main.c or m_libcsetjmp.c are changed.
+
+A dependency was missing between libcoregrind*.a and libnolto_coregrind*.a,
+and so tools were not relinked when m_main.c or m_libcsetjmp.c were
+changed.
+---
+ coregrind/Makefile.am | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
+index 914a270..8de1996 100644
+--- a/coregrind/Makefile.am
++++ b/coregrind/Makefile.am
+@@ -511,6 +511,8 @@ libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS += \
+ endif
+ libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_LIBADD = \
+ $(libnolto_coregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_OBJECTS)
++libcoregrind_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_DEPENDENCIES = \
++ libnolto_coregrind-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
+
+ if VGCONF_HAVE_PLATFORM_SEC
+ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
+@@ -531,6 +533,8 @@ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS += \
+ endif
+ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_LIBADD = \
+ $(libnolto_coregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_OBJECTS)
++libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \
++ libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
+ endif
+
+ #----------------------------------------------------------------------------
+--
+2.9.3
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix
new file mode 100644
index 000000000000..2e485b3ed67b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix
@@ -0,0 +1,90 @@
+{ stdenv, fetchurl, perl, gdb, cctools, xnu, bootstrap_cmds }:
+
+stdenv.mkDerivation rec {
+ name = "valgrind-3.16.1";
+
+ src = fetchurl {
+ url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
+ sha256 = "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9";
+ };
+
+ outputs = [ "out" "dev" "man" "doc" ];
+
+ hardeningDisable = [ "stackprotector" ];
+
+ # GDB is needed to provide a sane default for `--db-command'.
+ # Perl is needed for `callgrind_{annotate,control}'.
+ buildInputs = [ gdb perl ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ bootstrap_cmds xnu ];
+
+ # Perl is also a native build input.
+ nativeBuildInputs = [ perl ];
+
+ enableParallelBuilding = true;
+ separateDebugInfo = stdenv.isLinux;
+
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin (
+ let OSRELEASE = ''
+ $(awk -F '"' '/#define OSRELEASE/{ print $2 }' \
+ <${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)'';
+ in ''
+ echo "Don't derive our xnu version using uname -r."
+ substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}"
+
+ # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).
+ echo "getting rid of the \`-arch' GCC option..."
+ find -name Makefile\* -exec \
+ sed -i {} -e's/DARWIN\(.*\)-arch [^ ]\+/DARWIN\1/g' \;
+
+ sed -i coregrind/link_tool_exe_darwin.in \
+ -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
+
+ substituteInPlace coregrind/m_debuginfo/readmacho.c \
+ --replace /usr/bin/dsymutil ${stdenv.cc.bintools.bintools}/bin/dsymutil
+
+ echo "substitute hardcoded /usr/bin/ld with ${cctools}/bin/ld"
+ substituteInPlace coregrind/link_tool_exe_darwin.in \
+ --replace /usr/bin/ld ${cctools}/bin/ld
+ '');
+
+ # To prevent rebuild on linux when moving darwin's postPatch fixes to preConfigure
+ postPatch = "";
+
+ configureFlags =
+ stdenv.lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit"
+ ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include";
+
+ doCheck = false; # fails
+
+ postInstall = ''
+ for i in $out/lib/valgrind/*.supp; do
+ substituteInPlace $i \
+ --replace 'obj:/lib' 'obj:*/lib' \
+ --replace 'obj:/usr/X11R6/lib' 'obj:*/lib' \
+ --replace 'obj:/usr/lib' 'obj:*/lib'
+ done
+ '';
+
+ meta = {
+ homepage = "http://www.valgrind.org/";
+ description = "Debugging and profiling tool suite";
+
+ longDescription = ''
+ Valgrind is an award-winning instrumentation framework for
+ building dynamic analysis tools. There are Valgrind tools that
+ can automatically detect many memory management and threading
+ bugs, and profile your programs in detail. You can also use
+ Valgrind to build new tools.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = stdenv.lib.platforms.unix;
+ badPlatforms = [
+ "armv5tel-linux" "armv6l-linux" "armv6m-linux"
+ "sparc-linux" "sparc64-linux"
+ "riscv32-linux" "riscv64-linux"
+ "alpha-linux"
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valkyrie/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valkyrie/default.nix
new file mode 100644
index 000000000000..1c571fe6be0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/analysis/valkyrie/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, qt4, qmake4Hook }:
+
+stdenv.mkDerivation rec {
+ name = "valkyrie-2.0.0";
+
+ src = fetchurl {
+ url = "http://valgrind.org/downloads/${name}.tar.bz2";
+ sha256 = "0hwvsncf62mdkahwj9c8hpmm94c1wr5jn89370k6rj894kxry2x7";
+ };
+
+ patchPhase = ''
+ sed -i '1s;^;#include <unistd.h>\n;' src/objects/tool_object.cpp
+ sed -i '1s;^;#include <unistd.h>\n;' src/utils/vk_config.cpp
+ sed -i '1s;^;#include <sys/types.h>\n;' src/utils/vk_config.cpp
+ sed -i '1s;^;#include <unistd.h>\n;' src/utils/vk_utils.cpp
+ sed -i '1s;^;#include <sys/types.h>\n;' src/utils/vk_utils.cpp
+ '';
+
+ buildInputs = [ qt4 ];
+
+ nativeBuildInputs = [ qmake4Hook ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.valgrind.org/";
+ description = "Qt4-based GUI for the Valgrind 3.6.x series";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/apktool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/apktool/default.nix
new file mode 100644
index 000000000000..529f705e1012
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/apktool/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, makeWrapper, jre, build-tools }:
+
+stdenv.mkDerivation rec {
+ pname = "apktool";
+ version = "2.4.1";
+
+ src = fetchurl {
+ urls = [
+ "https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar"
+ "https://github.com/iBotPeaches/Apktool/releases/download/v${version}/apktool_${version}.jar"
+ ];
+ sha256 = "0ljsh8nx065isnyzzrwddypikkfhyqsww0w02cgwgh8x3lhndsxx";
+ };
+
+ phases = [ "installPhase" ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ install -D ${src} "$out/libexec/apktool/apktool.jar"
+ mkdir -p "$out/bin"
+ makeWrapper "${jre}/bin/java" "$out/bin/apktool" \
+ --add-flags "-jar $out/libexec/apktool/apktool.jar" \
+ --prefix PATH : "${builtins.head build-tools}/libexec/android-sdk/build-tools/28.0.3"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool for reverse engineering Android apk files";
+ homepage = "https://ibotpeaches.github.io/Apktool/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline ];
+ platforms = with platforms; unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/default.nix
new file mode 100644
index 000000000000..c93b864b70f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/default.nix
@@ -0,0 +1,33 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildGoPackage rec {
+ pname = "asmfmt";
+ version = "1.2.1";
+
+ goPackagePath = "github.com/klauspost/asmfmt";
+
+ src = fetchFromGitHub {
+ owner = "klauspost";
+ repo = "asmfmt";
+ rev = "v${version}";
+ sha256 = "0qwxb4yx12yl817vgbhs7acaj98lgk27dh50mb8sm9ccw1f43h9i";
+ };
+
+ goDeps = ./deps.nix;
+
+ # This package comes with its own version of goimports, gofmt and goreturns
+ # but these binaries are outdated and are offered by other packages.
+ subPackages = [ "cmd/asmfmt" ];
+
+ meta = with lib; {
+ description = "Go Assembler Formatter";
+ homepage = "https://github.com/klauspost/asmfmt";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/deps.nix
new file mode 100644
index 000000000000..0288fc206d49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/asmfmt/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
+ sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
+ };
+ }
+ {
+ goPackagePath = "sourcegraph.com/sqs/goreturns";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sqs/goreturns";
+ rev = "538ac601451833c7c4449f8431d65d53c1c60e41";
+ sha256 = "0gcplch8zmcgwl6xvcffxg50g3xnf60n7dlqxgn51179qcjr354p";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/asn2quickder/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/asn2quickder/default.nix
new file mode 100644
index 000000000000..68a0c0f6073e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/asn2quickder/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub, makeWrapper, cmake
+, pytestrunner, pytest, six, pyparsing, asn1ate }:
+
+buildPythonApplication rec {
+ pname = "asn2quickder";
+ version = "1.3.0";
+
+ src = fetchFromGitHub {
+ sha256 = "15lxv8vcjnsjxg7ywcac5p6mj5vf5pxq1219yap653ci4f1liqfr";
+ rev = "version-${version}";
+ owner = "vanrein";
+ repo = "quick-der";
+ };
+
+ postPatch = ''
+ patchShebangs ./python/scripts/*
+ '';
+
+ dontUseCmakeConfigure = true;
+
+ nativeBuildInputs = [ makeWrapper cmake ];
+ checkInputs = [ pytestrunner pytest ];
+
+ propagatedBuildInputs = [ pyparsing asn1ate six ];
+
+ meta = with stdenv.lib; {
+ description = "An ASN.1 compiler with a backend for Quick DER";
+ homepage = "https://github.com/vanrein/asn2quickder";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/async/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/async/default.nix
new file mode 100644
index 000000000000..e63f9a18a63a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/async/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "async";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "ctbur";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "19ypflbayi5l0mb8yw7w0a4bq9a3w8nl9jsxapp9m3xggzmsvrxx";
+ };
+
+ cargoSha256 = "1zgds5rjjikvaj0rxc7slyvkjn067s0v8vdnxn3vsv819q5yd707";
+
+ meta = with stdenv.lib; {
+ description = "A tool to parallelize shell commands";
+ longDescription = ''
+ `async` is a tool to run shell commands in parallel and is designed to be
+ able to quickly parallelize shell scripts with minimal changes. It was
+ inspired by GNU Parallel, with the main difference being that async
+ retains state between commands by running a server in the background.
+ '';
+ homepage = "https://github.com/ctbur/async";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ minijackson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/avro-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/avro-tools/default.nix
new file mode 100644
index 000000000000..5327ab354e91
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/avro-tools/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, makeWrapper, jre, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "avro-tools";
+ version = "1.9.2";
+
+ src = fetchurl {
+ url =
+ "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/${version}/${pname}-${version}.jar";
+ sha256 = "169cv4fjsj69fa2s87gh1i7wk0xzh3l7sx5yyz3cgyjalg4a12n1";
+ };
+
+ dontUnpack = true;
+
+ buildInputs = [ jre ];
+ nativeBuildInputs = [ makeWrapper ];
+ sourceRoot = ".";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/libexec/avro-tools
+ cp $src $out/libexec/avro-tools/${pname}.jar
+
+ makeWrapper ${jre}/bin/java $out/bin/avro-tools \
+ --add-flags "-jar $out/libexec/avro-tools/${pname}.jar"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://avro.apache.org/";
+ description = "Avro command-line tools and utilities";
+ license = lib.licenses.asl20;
+ maintainers = with lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
new file mode 100644
index 000000000000..a486d318608c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
@@ -0,0 +1,92 @@
+{ fetchFromGitHub
+, lib
+, python
+, enableTelemetry ? false
+}:
+
+let
+ py = python.override {
+ packageOverrides = self: super: {
+ aws-sam-translator = super.aws-sam-translator.overridePythonAttrs (oldAttrs: rec {
+ version = "1.25.0";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "08756yl5lpqgrpr80f2b6bdcgygr37l6q1yygklcg9hz4yfpccav";
+ };
+ });
+
+ flask = super.flask.overridePythonAttrs (oldAttrs: rec {
+ version = "1.0.2";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0j6f4a9rpfh25k1gp7azqhnni4mb4fgy50jammgjgddw1l3w0w92";
+ };
+ });
+
+ cookiecutter = super.cookiecutter.overridePythonAttrs (oldAttrs: rec {
+ version = "1.6.0";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0glsvaz8igi2wy1hsnhm9fkn6560vdvdixzvkq6dn20z3hpaa5hk";
+ };
+ });
+ };
+ };
+
+in
+
+with py.pkgs;
+
+buildPythonApplication rec {
+ pname = "aws-sam-cli";
+ version = "1.0.0rc1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "011b334gdvd9lhqia8c952q3cmzj99vik680180nbp0qh2xw6zpf";
+ };
+
+ # Tests are not included in the PyPI package
+ doCheck = false;
+
+ propagatedBuildInputs = [
+ aws-lambda-builders
+ aws-sam-translator
+ chevron
+ click
+ cookiecutter
+ dateparser
+ docker
+ flask
+ idna
+ jmespath
+ pathlib2
+ requests
+ serverlessrepo
+ six
+ tomlkit
+ ];
+
+ postFixup = if enableTelemetry then "echo aws-sam-cli TELEMETRY IS ENABLED" else ''
+ # Disable telemetry: https://github.com/awslabs/aws-sam-cli/issues/1272
+ wrapProgram $out/bin/sam --set SAM_CLI_TELEMETRY 0
+ '';
+
+ # fix over-restrictive version bounds
+ postPatch = ''
+ substituteInPlace requirements/base.txt \
+ --replace "boto3~=1.13.0, >=1.13.0" "boto3~=1.14.3" \
+ --replace "serverlessrepo==0.1.9" "serverlessrepo~=0.1.9" \
+ --replace "python-dateutil~=2.6, <2.8.1" "python-dateutil~=2.6" \
+ --replace "jmespath~=0.9.5" "jmespath~=0.10.0" \
+ --replace "tomlkit==0.5.8" "tomlkit~=0.7.0" \
+ --replace "requests==2.23.0" "requests~=2.24"
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/awslabs/aws-sam-cli";
+ description = "CLI tool for local development and testing of Serverless applications";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ andreabedini lo1tuma ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/azcopy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/azcopy/default.nix
new file mode 100644
index 000000000000..3d0fe8513c8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/azcopy/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "azure-storage-azcopy";
+ version = "10.6.0";
+
+ src = fetchFromGitHub {
+ owner = "Azure";
+ repo = "azure-storage-azcopy";
+ rev = "v${version}";
+ sha256 = "0izjnbldgf0597j4rh2ir9jsc2nzp9vwxcgllvkm5lh1xqf6i0nf";
+ };
+
+ subPackages = [ "." ];
+
+ vendorSha256 = "10sxkb2dh1il4ps15dlvq0xsry8hax27imb5qg3khdmjhb4yaj7k";
+
+ doCheck = false;
+
+ postInstall = ''
+ ln -rs "$out/bin/azure-storage-azcopy" "$out/bin/azcopy"
+ '';
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [ colemickens ];
+ license = licenses.mit;
+ description = "The new Azure Storage data transfer utility - AzCopy v10";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
new file mode 100644
index 000000000000..46e54465ab67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
@@ -0,0 +1,49 @@
+{
+ fetchFromGitHub,
+ lib,
+ python3Packages,
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "backblaze-b2";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "Backblaze";
+ repo = "B2_Command_Line_Tool";
+ rev = "v${version}";
+ sha256 = "00zs0a580vvfm2w4ja68mc46360p475wlgagjkq1hi4m8s4qwd75";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ b2sdk
+ class-registry
+ setuptools
+ ];
+
+ checkInputs = with python3Packages; [
+ nose
+ ];
+
+ # doCheck = false;
+ checkPhase = ''
+ nosetests
+ '';
+
+ postInstall = ''
+ mv "$out/bin/b2" "$out/bin/backblaze-b2"
+
+ sed 's/b2/backblaze-b2/' -i contrib/bash_completion/b2
+
+ mkdir -p "$out/etc/bash_completion.d"
+ cp contrib/bash_completion/b2 "$out/etc/bash_completion.d/backblaze-b2"
+ '';
+
+ meta = with lib; {
+ description = "Command-line tool for accessing the Backblaze B2 storage service";
+ homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
+ license = licenses.mit;
+ maintainers = with maintainers; [ hrdinka kevincox ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix
new file mode 100644
index 000000000000..a3838283c5eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+
+buildGoModule rec {
+ pname = "bazel-gazelle";
+ version = "0.21.1";
+
+ src = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "12ffrildgx4lah7bdnhr7i8z5jp05lll6gmmpzshmzz8dsgf39y4";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "cmd/gazelle" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/bazelbuild/bazel-gazelle";
+ description = ''
+ Gazelle is a Bazel build file generator for Bazel projects. It natively
+ supports Go and protobuf, and it may be extended to support new languages
+ and custom rule sets.
+ '';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
new file mode 100644
index 000000000000..20b17de0c211
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "bazel-kazel";
+ version = "0.1.1";
+
+ src = fetchFromGitHub {
+ owner = "kubernetes";
+ repo = "repo-infra";
+ rev = "v${version}";
+ sha256 = "0d59kf0y12sa1bki7gzcb2nzppwj3gxlv133bsnl9gc8vx1d8ldg";
+ };
+
+ vendorSha256 = "1pzkjh4n9ai8yqi98bkdhicjdr2l8j3fckl5n90c2gdcwqyxvgkf";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/kazel" ];
+
+ meta = with lib; {
+ description = "kazel - a BUILD file generator for go and bazel";
+ homepage = "https://github.com/kubernetes/repo-infra";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
new file mode 100644
index 000000000000..59a345faf29c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
@@ -0,0 +1,81 @@
+{ buildBazelPackage
+, fetchFromGitHub
+, git
+, go
+, python
+, stdenv
+}:
+
+let
+ patches = [
+ ./use-go-in-path.patch
+ ];
+in
+buildBazelPackage rec {
+ name = "bazel-watcher-${version}";
+ version = "0.13.1";
+
+ src = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "bazel-watcher";
+ rev = "v${version}";
+ sha256 = "0n28q27510ymg5d455hrbk7z8wawszgjmqjjhb4zximqhvxks7kh";
+ };
+
+ nativeBuildInputs = [ go git python ];
+ removeRulesCC = false;
+
+ bazelTarget = "//ibazel";
+
+ fetchAttrs = {
+ inherit patches;
+
+ preBuild = ''
+ patchShebangs .
+ '';
+
+ preInstall = ''
+ # Remove the go_sdk (it's just a copy of the go derivation) and all
+ # references to it from the marker files. Bazel does not need to download
+ # this sdk because we have patched the WORKSPACE file to point to the one
+ # currently present in PATH. Without removing the go_sdk from the marker
+ # file, the hash of it will change anytime the Go derivation changes and
+ # that would lead to impurities in the marker files which would result in
+ # a different sha256 for the fetch phase.
+ rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
+ sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
+
+ # Retains go build input markers
+ chmod -R 755 $bazelOut/external/{bazel_gazelle_go_repository_cache,@\bazel_gazelle_go_repository_cache.marker}
+ rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,@\bazel_gazelle_go_repository_cache.marker}
+
+ # Remove the gazelle tools, they contain go binaries that are built
+ # non-deterministically. As long as the gazelle version matches the tools
+ # should be equivalent.
+ rm -rf $bazelOut/external/{bazel_gazelle_go_repository_tools,\@bazel_gazelle_go_repository_tools.marker}
+ sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
+ '';
+
+ sha256 = "0rfdwss8aahydiybwhi3j0qw12j1l91k9lbn1vaip0bmnq5qfwh9";
+ };
+
+ buildAttrs = {
+ inherit patches;
+
+ preBuild = ''
+ patchShebangs .
+ '';
+
+ installPhase = ''
+ install -Dm755 bazel-bin/ibazel/*_pure_stripped/ibazel $out/bin/ibazel
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/bazelbuild/bazel-watcher";
+ description = "Tools for building Bazel targets when source files change";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/use-go-in-path.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/use-go-in-path.patch
new file mode 100644
index 000000000000..010ba56165d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bazel-watcher/use-go-in-path.patch
@@ -0,0 +1,13 @@
+diff --git a/WORKSPACE b/WORKSPACE
+index 51273b6..fcf9ffb 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -61,7 +61,7 @@ load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_depe
+
+ go_rules_dependencies()
+
+-go_register_toolchains()
++go_register_toolchains(go_version = "host")
+
+ load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bazelisk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/bazelisk/default.nix
new file mode 100644
index 000000000000..26a0dd866703
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bazelisk/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "bazelisk";
+ version = "1.7.2";
+
+ src = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0psqhv2cm2xwjyivaza2s6x780q6yjn1nsjdy538zjky22dazqq4";
+ };
+
+ vendorSha256 = "116wy1a7gmi2w8why9hszhcybfvpwp4iq62vshb25cdcma6q4mjh";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.BazeliskVersion=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "A user-friendly launcher for Bazel";
+ longDescription = ''
+ BEWARE: This package does not work on NixOS.
+ '';
+ homepage = "https://github.com/bazelbuild/bazelisk";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ elasticdog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/bloaty/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/bloaty/default.nix
new file mode 100644
index 000000000000..28df0aaa6963
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/bloaty/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, cmake, zlib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ version = "1.1";
+ pname = "bloaty";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "bloaty";
+ rev = "v${version}";
+ sha256 = "1556gb8gb8jwf5mwxppcqz3mp269b5jhd51kj341iqkbn27zzngk";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ zlib ];
+
+ enableParallelBuilding = true;
+
+ doCheck = true;
+
+ installPhase = ''
+ install -Dm755 {.,$out/bin}/bloaty
+ '';
+
+ meta = with stdenv.lib; {
+ description = "a size profiler for binaries";
+ homepage = "https://github.com/google/bloaty";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/boomerang/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/boomerang/default.nix
new file mode 100644
index 000000000000..bec5357691f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/boomerang/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase, capstone, bison, flex }:
+
+mkDerivation rec {
+ pname = "boomerang";
+ version = "0.5.2";
+
+ src = fetchFromGitHub {
+ owner = "BoomerangDecompiler";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0xncdp0z8ry4lkzmvbj5d7hlzikivghpwicgywlv47spgh8ny0ix";
+ };
+
+ nativeBuildInputs = [ cmake bison flex ];
+ buildInputs = [ qtbase capstone ];
+
+ enableParallelBuilding = true;
+
+ meta = with lib; {
+ homepage = "https://github.com/BoomerangDecompiler/boomerang";
+ license = licenses.bsd3;
+ description = "A general, open source, retargetable decompiler";
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/boost-build/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/boost-build/default.nix
new file mode 100644
index 000000000000..8ce475c893d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/boost-build/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "boost-build";
+ version = "2016.03";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "build";
+ rev = version;
+ sha256 = "1qw5marmp7z09nwcjlqrmqdg9b6myfqj3zvfz888x9mbidrmhn6p";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ patchPhase = ''
+ grep -r '/usr/share/boost-build' \
+ | awk '{split($0,a,":"); print a[1];}' \
+ | xargs sed -i "s,/usr/share/boost-build,$out/share/boost-build,"
+ '';
+
+ buildPhase = ''
+ ./bootstrap.sh
+ '';
+
+ installPhase = ''
+ ./b2 install --prefix=$out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.boost.org/boost-build2/";
+ license = stdenv.lib.licenses.boost;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ ivan-tkatchev ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/alibuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/alibuild/default.nix
new file mode 100644
index 000000000000..ad9813cde6fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/alibuild/default.nix
@@ -0,0 +1,24 @@
+{ lib, python}:
+
+python.pkgs.buildPythonApplication rec {
+ pname = "alibuild";
+ version = "1.5.5";
+
+ src = python.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "1sh02avpab4qlyin3p928xw91l4fgs8x5x2rzl623ayqsnfjv19j";
+ };
+
+ doCheck = false;
+ propagatedBuildInputs = [
+ python.pkgs.requests
+ python.pkgs.pyyaml
+ ];
+
+ meta = with lib; {
+ homepage = "https://alisw.github.io/alibuild/";
+ description = "Build tool for ALICE experiment software";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ ktf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
new file mode 100644
index 000000000000..49f8435b3773
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
@@ -0,0 +1,112 @@
+{ fetchurl, stdenv, coreutils, makeWrapper }:
+
+let version = "1.9.15"; in
+
+stdenv.mkDerivation {
+ pname = "ant";
+ inherit version;
+
+ buildInputs = [ makeWrapper ];
+
+ src = fetchurl {
+ url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
+ sha256 = "0yfx5qsvrg12lar4908ndbnlpppy7g7qk8ay41y4sz9g873v07mr";
+ };
+
+ contrib = fetchurl {
+ url = "mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2";
+ sha256 = "96effcca2581c1ab42a4828c770b48d54852edf9e71cefc9ed2ffd6590571ad1";
+ };
+
+ installPhase =
+ ''
+ mkdir -p $out/bin $out/lib/ant
+ mv * $out/lib/ant/
+
+ # Get rid of the manual (35 MiB). Maybe we should put this in a
+ # separate output. Keep the antRun script since it's vanilla sh
+ # and needed for the <exec/> task (but since we set ANT_HOME to
+ # a weird value, we have to move antRun to a weird location).
+ # Get rid of the other Ant scripts since we provide our own.
+ mv $out/lib/ant/bin/antRun $out/bin/
+ rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
+ mkdir $out/lib/ant/bin
+ mv $out/bin/antRun $out/lib/ant/bin/
+
+ # Install ant-contrib.
+ unpackFile $contrib
+ cp -p ant-contrib/ant-contrib-*.jar $out/lib/ant/lib/
+
+ cat >> $out/bin/ant <<EOF
+ #! ${stdenv.shell} -e
+
+ ANT_HOME=$out/lib/ant
+
+ # Find the JDK by looking for javac. As a fall-back, find the
+ # JRE by looking for java. The latter allows just the JRE to be
+ # used with (say) ECJ as the compiler. Finally, allow the GNU
+ # JVM.
+ if [ -z "\''${JAVA_HOME-}" ]; then
+ for i in javac java gij; do
+ if p="\$(type -p \$i)"; then
+ export JAVA_HOME="\$(${coreutils}/bin/dirname \$(${coreutils}/bin/dirname \$(${coreutils}/bin/readlink -f \$p)))"
+ break
+ fi
+ done
+ if [ -z "\''${JAVA_HOME-}" ]; then
+ echo "\$0: cannot find the JDK or JRE" >&2
+ exit 1
+ fi
+ fi
+
+ if [ -z \$NIX_JVM ]; then
+ if [ -e \$JAVA_HOME/bin/java ]; then
+ NIX_JVM=\$JAVA_HOME/bin/java
+ elif [ -e \$JAVA_HOME/bin/gij ]; then
+ NIX_JVM=\$JAVA_HOME/bin/gij
+ else
+ NIX_JVM=java
+ fi
+ fi
+
+ LOCALCLASSPATH="\$ANT_HOME/lib/ant-launcher.jar\''${LOCALCLASSPATH:+:}\$LOCALCLASSPATH"
+
+ exec \$NIX_JVM \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" \
+ -Dant.home=\$ANT_HOME -Dant.library.dir="\$ANT_LIB" \
+ org.apache.tools.ant.launch.Launcher \$NIX_ANT_ARGS \$ANT_ARGS \
+ -cp "\$CLASSPATH" "\$@"
+ EOF
+
+ chmod +x $out/bin/ant
+ ''; # */
+
+ meta = {
+ homepage = "http://ant.apache.org/";
+ description = "A Java-based build tool";
+
+ longDescription = ''
+ Apache Ant is a Java-based build tool. In theory, it is kind of like
+ Make, but without Make's wrinkles.
+
+ Why another build tool when there is already make, gnumake, nmake, jam,
+ and others? Because all those tools have limitations that Ant's
+ original author couldn't live with when developing software across
+ multiple platforms. Make-like tools are inherently shell-based -- they
+ evaluate a set of dependencies, then execute commands not unlike what
+ you would issue in a shell. This means that you can easily extend
+ these tools by using or writing any program for the OS that you are
+ working on. However, this also means that you limit yourself to the
+ OS, or at least the OS type such as Unix, that you are working on.
+
+ Ant is different. Instead of a model where it is extended with
+ shell-based commands, Ant is extended using Java classes. Instead of
+ writing shell commands, the configuration files are XML-based, calling
+ out a target tree where various tasks get executed. Each task is run
+ by an object that implements a particular Task interface.
+ '';
+
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
new file mode 100644
index 000000000000..b0411090fbe5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -0,0 +1,112 @@
+{ fetchurl, stdenv, coreutils, makeWrapper }:
+
+let version = "1.10.8"; in
+
+stdenv.mkDerivation {
+ pname = "ant";
+ inherit version;
+
+ buildInputs = [ makeWrapper ];
+
+ src = fetchurl {
+ url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
+ sha256 = "0zh94csb2hl6ir2ccn18ps506mjgh3mffnrb8wpsmp1x5fcykha5";
+ };
+
+ contrib = fetchurl {
+ url = "mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2";
+ sha256 = "1l8say86bz9gxp4yy777z7nm4j6m905pg342li1aphc14p5grvwn";
+ };
+
+ installPhase =
+ ''
+ mkdir -p $out/bin $out/lib/ant
+ mv * $out/lib/ant/
+
+ # Get rid of the manual (35 MiB). Maybe we should put this in a
+ # separate output. Keep the antRun script since it's vanilla sh
+ # and needed for the <exec/> task (but since we set ANT_HOME to
+ # a weird value, we have to move antRun to a weird location).
+ # Get rid of the other Ant scripts since we provide our own.
+ mv $out/lib/ant/bin/antRun $out/bin/
+ rm -rf $out/lib/ant/{manual,bin,WHATSNEW}
+ mkdir $out/lib/ant/bin
+ mv $out/bin/antRun $out/lib/ant/bin/
+
+ # Install ant-contrib.
+ unpackFile $contrib
+ cp -p ant-contrib/ant-contrib-*.jar $out/lib/ant/lib/
+
+ cat >> $out/bin/ant <<EOF
+ #! ${stdenv.shell} -e
+
+ ANT_HOME=$out/lib/ant
+
+ # Find the JDK by looking for javac. As a fall-back, find the
+ # JRE by looking for java. The latter allows just the JRE to be
+ # used with (say) ECJ as the compiler. Finally, allow the GNU
+ # JVM.
+ if [ -z "\''${JAVA_HOME-}" ]; then
+ for i in javac java gij; do
+ if p="\$(type -p \$i)"; then
+ export JAVA_HOME="\$(${coreutils}/bin/dirname \$(${coreutils}/bin/dirname \$(${coreutils}/bin/readlink -f \$p)))"
+ break
+ fi
+ done
+ if [ -z "\''${JAVA_HOME-}" ]; then
+ echo "\$0: cannot find the JDK or JRE" >&2
+ exit 1
+ fi
+ fi
+
+ if [ -z \$NIX_JVM ]; then
+ if [ -e \$JAVA_HOME/bin/java ]; then
+ NIX_JVM=\$JAVA_HOME/bin/java
+ elif [ -e \$JAVA_HOME/bin/gij ]; then
+ NIX_JVM=\$JAVA_HOME/bin/gij
+ else
+ NIX_JVM=java
+ fi
+ fi
+
+ LOCALCLASSPATH="\$ANT_HOME/lib/ant-launcher.jar\''${LOCALCLASSPATH:+:}\$LOCALCLASSPATH"
+
+ exec \$NIX_JVM \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" \
+ -Dant.home=\$ANT_HOME -Dant.library.dir="\$ANT_LIB" \
+ org.apache.tools.ant.launch.Launcher \$NIX_ANT_ARGS \$ANT_ARGS \
+ -cp "\$CLASSPATH" "\$@"
+ EOF
+
+ chmod +x $out/bin/ant
+ ''; # */
+
+ meta = {
+ homepage = "http://ant.apache.org/";
+ description = "A Java-based build tool";
+
+ longDescription = ''
+ Apache Ant is a Java-based build tool. In theory, it is kind of like
+ Make, but without Make's wrinkles.
+
+ Why another build tool when there is already make, gnumake, nmake, jam,
+ and others? Because all those tools have limitations that Ant's
+ original author couldn't live with when developing software across
+ multiple platforms. Make-like tools are inherently shell-based -- they
+ evaluate a set of dependencies, then execute commands not unlike what
+ you would issue in a shell. This means that you can easily extend
+ these tools by using or writing any program for the OS that you are
+ working on. However, this also means that you limit yourself to the
+ OS, or at least the OS type such as Unix, that you are working on.
+
+ Ant is different. Instead of a model where it is extended with
+ shell-based commands, Ant is extended using Java classes. Instead of
+ writing shell commands, the configuration files are XML-based, calling
+ out a target tree where various tasks get executed. Each task is run
+ by an object that implements a particular Task interface.
+ '';
+
+ license = stdenv.lib.licenses.asl20;
+ maintainers = [ stdenv.lib.maintainers.eelco ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/builder.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/builder.sh
new file mode 100644
index 000000000000..dcc38b9ec74a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/builder.sh
@@ -0,0 +1,18 @@
+source $stdenv/setup
+
+unpackPhase
+
+mkdir -p $out/maven
+cp -r $name/* $out/maven
+
+makeWrapper $out/maven/bin/mvn $out/bin/mvn --set-default JAVA_HOME "$jdk"
+makeWrapper $out/maven/bin/mvnDebug $out/bin/mvnDebug --set-default JAVA_HOME "$jdk"
+
+# Add the maven-axis and JIRA plugin by default when using maven 1.x
+if [ -e $out/maven/bin/maven ]
+then
+ export OLD_HOME=$HOME
+ export HOME=.
+ $out/maven/bin/maven plugin:download -DgroupId=maven-plugins -DartifactId=maven-axis-plugin -Dversion=0.7
+ export HOME=OLD_HOME
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
new file mode 100644
index 000000000000..83260cbc1860
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, jdk, makeWrapper }:
+
+assert jdk != null;
+
+let version = "3.6.3"; in
+stdenv.mkDerivation rec {
+ pname = "apache-maven";
+ inherit version;
+
+ builder = ./builder.sh;
+
+ src = fetchurl {
+ url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
+ sha256 = "1i9qlj3vy4j1yyf22nwisd0pg88n9qzp9ymfhwqabadka7br3b96";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ inherit jdk;
+
+ meta = with stdenv.lib; {
+ description = "Build automation tool (used primarily for Java projects)";
+ homepage = "http://maven.apache.org/";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/arpa2cm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/arpa2cm/default.nix
new file mode 100644
index 000000000000..ef3062c6ca50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/arpa2cm/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "arpa2cm";
+ version = "0.5";
+
+ src = fetchFromGitHub {
+ sha256 = "093h7njj8d8iiwnw5byfxkkzlbny60fwv1w57j8f1lsd4yn6rih4";
+ rev = "version-${version}";
+ repo = pname;
+ owner = "arpa2";
+ };
+
+ buildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "CMake Module library for the ARPA2 project";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
new file mode 100644
index 000000000000..969cd9879746
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bam/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, lua5_3, python }:
+
+stdenv.mkDerivation rec {
+ pname = "bam";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "matricks";
+ repo = "bam";
+ rev = "v${version}";
+ sha256 = "13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6";
+ };
+
+ buildInputs = [ lua5_3 python ];
+
+ buildPhase = ''${stdenv.shell} make_unix.sh'';
+
+ checkPhase = ''${python.interpreter} scripts/test.py'';
+
+ installPhase = ''
+ mkdir -p "$out/share/bam"
+ cp -r docs examples tests "$out/share/bam"
+ mkdir -p "$out/bin"
+ cp bam "$out/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Yet another build manager";
+ maintainers = with maintainers;
+ [
+ raskin
+ ];
+ platforms = platforms.linux;
+ license = licenses.zlib;
+ downloadPage = "http://matricks.github.com/bam/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
new file mode 100644
index 000000000000..b67a5ab22341
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bash-tools-test.nix
@@ -0,0 +1,44 @@
+{ writeText, bazel, runLocal, bazelTest, distDir }:
+
+# Tests that certain executables are available in bazel-executed bash shells.
+
+let
+ WORKSPACE = writeText "WORKSPACE" ''
+ workspace(name = "our_workspace")
+ '';
+
+ fileIn = writeText "input.txt" ''
+ one
+ two
+ three
+ '';
+
+ fileBUILD = writeText "BUILD" ''
+ genrule(
+ name = "tool_usage",
+ srcs = [ ":input.txt" ],
+ outs = [ "output.txt" ],
+ cmd = "cat $(location :input.txt) | gzip - | gunzip - | awk '/t/' > $@",
+ )
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} ''
+ mkdir $out
+ cp ${WORKSPACE} $out/WORKSPACE
+ cp ${fileIn} $out/input.txt
+ cp ${fileBUILD} $out/BUILD
+ '';
+
+ testBazel = bazelTest {
+ name = "bazel-test-bash-tools";
+ bazelPkg = bazel;
+ inherit workspaceDir;
+
+ bazelScript = ''
+ ${bazel}/bin/bazel build :tool_usage --distdir=${distDir}
+ cp bazel-bin/output.txt $out
+ echo "Testing content" && [ "$(cat $out | wc -l)" == "2" ] && echo "OK"
+ '';
+ };
+
+in testBazel
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
new file mode 100644
index 000000000000..4cde308b8359
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -0,0 +1,90 @@
+{ buildBazelPackage
+, cacert
+, fetchFromGitHub
+, git
+, go
+, stdenv
+}:
+
+buildBazelPackage rec {
+ name = "bazel-remote-${version}";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "buchgr";
+ repo = "bazel-remote";
+ rev = "v${version}";
+ sha256 = "1fpdw139d5q1377qnqbgkahmdr4mdaa17d2m10wkyvyvijwm4r2m";
+ };
+
+ nativeBuildInputs = [ go git ];
+
+ bazelTarget = "//:bazel-remote";
+
+ removeRulesCC = false;
+
+ # this is to work around `test -f` failing when called by gazelle
+ # https://github.com/bazelbuild/bazel-gazelle/blob/v0.19.1/internal/go_repository.bzl#L135
+ patches = [ ./disable_build_file_generation.patch ];
+
+ fetchAttrs = {
+ preBuild = ''
+ patchShebangs .
+
+ # tell rules_go to use the Go binary found in the PATH
+ sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+
+ # tell rules_go to invoke GIT with custom CAINFO path
+ export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt"
+
+ # force gazelle to use the nix go cache rather than its own
+ # export GO_REPOSITORY_USE_HOST_CACHE=1
+ '';
+
+ preInstall = ''
+ # Remove the go_sdk (it's just a copy of the go derivation) and all
+ # references to it from the marker files. Bazel does not need to download
+ # this sdk because we have patched the WORKSPACE file to point to the one
+ # currently present in PATH. Without removing the go_sdk from the marker
+ # file, the hash of it will change anytime the Go derivation changes and
+ # that would lead to impurities in the marker files which would result in
+ # a different sha256 for the fetch phase.
+ rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
+ sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
+
+ # Remove the gazelle repository cache as it contains built binaries
+ chmod -R u+w $bazelOut/external/bazel_gazelle_go_repository_cache
+ rm -rf $bazelOut/external/{bazel_gazelle_go_repository_cache,\@bazel_gazelle_go_repository_cache.marker}
+ sed -e '/^FILE:@bazel_gazelle_go_repository_cache.*/d' -i $bazelOut/external/\@*.marker
+
+ # Remove the gazelle tools, they contain go binaries that are built
+ # non-deterministically. As long as the gazelle version matches the tools
+ # should be equivalent.
+ rm -rf $bazelOut/external/{bazel_gazelle_go_repository_tools,\@bazel_gazelle_go_repository_tools.marker}
+ sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
+ '';
+
+ sha256 = "1m7fmb03lirffxx04ck73bn5zwaji7zdwhlqq8s1c6pgp755d3vi";
+ };
+
+ buildAttrs = {
+ preBuild = ''
+ patchShebangs .
+
+ # tell rules_go to use the Go binary found in the PATH
+ sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+ '';
+
+ installPhase = ''
+ install -Dm755 bazel-bin/*_pure_stripped/bazel-remote $out/bin/bazel-remote
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/buchgr/bazel-remote";
+ description = "A remote HTTP/1.1 cache for Bazel";
+ license = licenses.asl20;
+ maintainers = [ maintainers.uri-canva ];
+ platforms = platforms.darwin ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch
new file mode 100644
index 000000000000..67df8f559a20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/disable_build_file_generation.patch
@@ -0,0 +1,24 @@
+From 3f5abd591b93ebdbc1ae82e5c29cf26024222f5f Mon Sep 17 00:00:00 2001
+From: Uri Baghin <uri@canva.com>
+Date: Thu, 30 Jan 2020 16:47:36 +1100
+Subject: [PATCH] Disable build file generation for remote apis.
+
+---
+ WORKSPACE | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/WORKSPACE b/WORKSPACE
+index f9ebafa..52e4e0b 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -208,6 +208,7 @@ http_archive(
+
+ go_repository(
+ name = "com_github_bazelbuild_remote_apis",
++ build_file_generation = "off",
+ importpath = "github.com/bazelbuild/remote-apis",
+ sum = "h1:OPH+hf+ICw8WEp2CV2ncfdyWPC30Cmw8b5NKun0n5IQ=",
+ version = "v0.0.0-20191119143007-b5123b1bb285",
+--
+2.25.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
new file mode 100644
index 000000000000..2ec244e502bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
@@ -0,0 +1,388 @@
+{ stdenv, callPackage, lib, fetchurl, fetchpatch, runCommand, makeWrapper
+, zip, unzip, bash, writeCBin, coreutils
+, which, python, perl, gawk, gnused, gnutar, gnugrep, gzip, findutils
+# Apple dependencies
+, cctools, llvmPackages_8, CoreFoundation, CoreServices, Foundation
+# Allow to independently override the jdks used to build and run respectively
+, buildJdk, runJdk
+, buildJdkName
+, runtimeShell
+# Always assume all markers valid (don't redownload dependencies).
+# Also, don't clean up environment variables.
+, enableNixHacks ? false
+}:
+
+let
+ srcDeps = [
+ # From: $REPO_ROOT/WORKSPACE
+ (fetchurl {
+ url = "https://github.com/google/desugar_jdk_libs/archive/915f566d1dc23bc5a8975320cd2ff71be108eb9c.zip";
+ sha256 = "0b926df7yxyyyiwm9cmdijy6kplf0sghm23sf163zh8wrk87wfi7";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz";
+ sha256 = "4a1318fed4831697b83ce879b3ab70ae09592b167e5bda8edaff45132d1c3b3f";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz";
+ sha256 = "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz";
+ sha256 = "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/bazel_java_tools/releases/javac10/v3.1/java_tools_javac10_linux-v3.1.zip";
+ sha256 = "a0cd51f9db1bf05a722ff7f5c60a07fa1c7d27428fff0815c342d32aa6c53576";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/bazel_java_tools/releases/javac10/v3.1/java_tools_javac10_darwin-v3.1.zip";
+ sha256 = "c646aad8808b8ec5844d6a80a1287fc8e13203375fe40d6af4819eff48b9bbaf";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v1.0.zip";
+ sha256 = "cc470e529fafb6165b5be3929ff2d99b38429b386ac100878687416603a67889";
+ })
+ (fetchurl {
+ url = "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip";
+ sha256 = "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0";
+ })
+ (fetchurl {
+ url = "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.2.tar.gz";
+ sha256 = "04f85f2dd049e87805511e3babc5cea3f5e72332b1627e34f3a5461cc38e815f";
+ })
+ ];
+
+ distDir = runCommand "bazel-deps" {} ''
+ mkdir -p $out
+ for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
+ '';
+
+ defaultShellPath = lib.makeBinPath
+ # Keep this list conservative. For more exotic tools, prefer to use
+ # @rules_nixpkgs to pull in tools from the nix repository. Example:
+ #
+ # WORKSPACE:
+ #
+ # nixpkgs_git_repository(
+ # name = "nixpkgs",
+ # revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
+ # )
+ #
+ # # This defines an external Bazel workspace.
+ # nixpkgs_package(
+ # name = "bison",
+ # repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
+ # )
+ #
+ # some/BUILD.bazel:
+ #
+ # genrule(
+ # ...
+ # cmd = "$(location @bison//:bin/bison) -other -args",
+ # tools = [
+ # ...
+ # "@bison//:bin/bison",
+ # ],
+ # )
+ #
+ [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip ];
+
+ # Java toolchain used for the build and tests
+ javaToolchain = "@bazel_tools//tools/jdk:toolchain_host${buildJdkName}";
+ stdenv' = if stdenv.isDarwin then llvmPackages_8.libcxxStdenv else stdenv;
+
+in
+stdenv'.mkDerivation rec {
+
+ version = "0.26.0";
+
+ meta = with lib; {
+ homepage = "https://github.com/bazelbuild/bazel/";
+ description = "Build tool that builds code quickly and reliably";
+ license = licenses.asl20;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+
+ # Additional tests that check bazel’s functionality. Execute
+ #
+ # nix-build . -A bazel.tests
+ #
+ # in the nixpkgs checkout root to exercise them locally.
+ passthru.tests = {
+ pythonBinPath = callPackage ./python-bin-path-test.nix {};
+ bashTools = callPackage ./bash-tools-test.nix {};
+ };
+
+ name = "bazel-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/bazelbuild/bazel/releases/download/${version}/${name}-dist.zip";
+ sha256 = "d26dadf62959255d58e523da3448a6222af768fe1224e321b120c1d5bbe4b4f2";
+ };
+
+ # Necessary for the tests to pass on Darwin with sandbox enabled.
+ # Bazel starts a local server and needs to bind a local address.
+ __darwinAllowLocalNetworking = true;
+
+ sourceRoot = ".";
+
+ patches = [
+ ./glibc.patch
+ ./python-stub-path-fix.patch
+ ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
+
+ # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
+
+ customBash = writeCBin "bash" ''
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+
+ extern char **environ;
+
+ int main(int argc, char *argv[]) {
+ char *path = getenv("PATH");
+ char *pathToAppend = "${defaultShellPath}";
+ char *newPath;
+ if (path != NULL) {
+ int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
+ newPath = malloc(length * sizeof(char));
+ snprintf(newPath, length, "%s:%s", path, pathToAppend);
+ } else {
+ newPath = pathToAppend;
+ }
+ setenv("PATH", newPath, 1);
+ execve("${bash}/bin/bash", argv, environ);
+ return 0;
+ }
+ '';
+
+ postPatch = let
+
+ darwinPatches = ''
+ bazelLinkFlags () {
+ eval set -- "$NIX_LDFLAGS"
+ local flag
+ for flag in "$@"; do
+ printf ' -Wl,%s' "$flag"
+ done
+ }
+
+ # Disable Bazel's Xcode toolchain detection which would configure compilers
+ # and linkers from Xcode instead of from PATH
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
+ export GCOV=${coreutils}/bin/false
+
+ # Framework search paths aren't added by bintools hook
+ # https://github.com/NixOS/nixpkgs/pull/41914
+ export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+
+ # libcxx includes aren't added by libcxx hook
+ # https://github.com/NixOS/nixpkgs/pull/41589
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${llvmPackages_8.libcxx}/include/c++/v1"
+
+ # don't use system installed Xcode to run clang, use Nix clang instead
+ sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv'.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
+ scripts/bootstrap/compile.sh \
+ src/tools/xcode/realpath/BUILD \
+ src/tools/xcode/stdredirect/BUILD \
+ tools/osx/BUILD
+
+ # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
+ sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
+
+ # clang installed from Xcode has a compatibility wrapper that forwards
+ # invocations of gcc to clang, but vanilla clang doesn't
+ sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
+
+ sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
+ wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
+ for wrapper in "''${wrappers[@]}"; do
+ sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
+ done
+ '';
+
+ genericPatches = ''
+ # Substitute python's stub shebang to plain python path. (see TODO add pr URL)
+ # See also `postFixup` where python is added to $out/nix-support
+ substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt\
+ --replace "/usr/bin/env python" "${python}/bin/python" \
+ --replace "NIX_STORE_PYTHON_PATH" "${python}/bin/python" \
+
+ # md5sum is part of coreutils
+ sed -i 's|/sbin/md5|md5sum|' \
+ src/BUILD
+
+ # substituteInPlace is rather slow, so prefilter the files with grep
+ grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
+ # If you add more replacements here, you must change the grep above!
+ # Only files containing /bin are taken into account.
+ substituteInPlace "$path" \
+ --replace /bin/bash ${customBash}/bin/bash \
+ --replace /usr/bin/env ${coreutils}/bin/env \
+ --replace /bin/true ${coreutils}/bin/true
+ done
+
+ # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
+ substituteInPlace scripts/bootstrap/compile.sh \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ # add nix environment vars to .bazelrc
+ cat >> .bazelrc <<EOF
+ build --experimental_distdir=${distDir}
+ fetch --experimental_distdir=${distDir}
+ build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
+ build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+ build --linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+ build --host_linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
+ build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
+ build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
+ build --host_javabase='@local_jdk//:jdk'
+ build --host_java_toolchain='${javaToolchain}'
+ EOF
+
+ # add the same environment vars to compile.sh
+ sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
+ -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
+ -i scripts/bootstrap/compile.sh
+
+ # --experimental_strict_action_env (which will soon become the
+ # default, see bazelbuild/bazel#2574) hardcodes the default
+ # action environment to a value that on NixOS at least is bogus.
+ # So we hardcode it to something useful.
+ substituteInPlace \
+ src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java \
+ --replace /bin:/usr/bin ${defaultShellPath}
+
+ # This is necessary to avoid:
+ # "error: no visible @interface for 'NSDictionary' declares the selector
+ # 'initWithContentsOfURL:error:'"
+ # This can be removed when the apple_sdk is upgraded beyond 10.13+
+ sed -i '/initWithContentsOfURL:versionPlistUrl/ {
+ N
+ s/error:nil\];/\];/
+ }' tools/osx/xcode_locator.m
+
+ # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
+ echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
+ cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
+ mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
+
+ patchShebangs .
+ '';
+ in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
+ + genericPatches;
+
+ buildInputs = [
+ buildJdk
+ ];
+
+ # when a command can’t be found in a bazel build, you might also
+ # need to add it to `defaultShellPath`.
+ nativeBuildInputs = [
+ zip
+ python
+ unzip
+ makeWrapper
+ which
+ customBash
+ ] ++ lib.optionals (stdenv.isDarwin) [ cctools CoreFoundation CoreServices Foundation ];
+
+ # Bazel makes extensive use of symlinks in the WORKSPACE.
+ # This causes problems with infinite symlinks if the build output is in the same location as the
+ # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
+ # subdirectory.
+ # Failing to do this causes "infinite symlink expansion detected"
+ preBuildPhases = ["preBuildPhase"];
+ preBuildPhase = ''
+ mkdir bazel_src
+ shopt -s dotglob extglob
+ mv !(bazel_src) bazel_src
+ '';
+
+ buildPhase = ''
+ # Increasing memory during compilation might be necessary.
+ # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
+ ./bazel_src/compile.sh
+ ./bazel_src/scripts/generate_bash_completion.sh \
+ --bazel=./bazel_src/output/bazel \
+ --output=./bazel_src/output/bazel-complete.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-header.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-template.bash
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
+ # if it can’t find something in tools, it calls $out/bin/bazel-real
+ cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+ mv ./bazel_src/output/bazel $out/bin/bazel-real
+
+ wrapProgram "$out/bin/bazel" --add-flags --server_javabase="${runJdk}"
+
+ # shell completion files
+ mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
+ mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel
+ cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
+ '';
+
+ # Temporarily disabling for now. A new approach is needed for this derivation as Bazel
+ # accesses the internet during the tests which fails in a sandbox.
+ doInstallCheck = false;
+ installCheckPhase = ''
+ export TEST_TMPDIR=$(pwd)
+
+ hello_test () {
+ $out/bin/bazel test \
+ --test_output=errors \
+ --java_toolchain='${javaToolchain}' \
+ examples/cpp:hello-success_test \
+ examples/java-native/src/test/java/com/example/myproject:hello
+ }
+
+ cd ./bazel_src
+
+ # test whether $WORKSPACE_ROOT/tools/bazel works
+
+ mkdir -p tools
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exit 1
+ EOF
+ chmod +x tools/bazel
+
+ # first call should fail if tools/bazel is used
+ ! hello_test
+
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exec "$BAZEL_REAL" "$@"
+ EOF
+
+ # second call succeeds because it defers to $out/bin/bazel-real
+ hello_test
+ '';
+
+ # Save paths to hardcoded dependencies so Nix can detect them.
+ postFixup = ''
+ mkdir -p $out/nix-support
+ echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
+ # The templates get tar’d up into a .jar,
+ # so nix can’t detect python is needed in the runtime closure
+ echo "${python}" >> $out/nix-support/depends
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/glibc.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/glibc.patch
new file mode 100644
index 000000000000..c4de48068f11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/glibc.patch
@@ -0,0 +1,78 @@
+From https://github.com/grpc/grpc/commit/57586a1ca7f17b1916aed3dea4ff8de872dbf853
+From: Benjamin Peterson <benjamin@dropbox.com>
+Date: Fri, 3 May 2019 08:11:00 -0700
+Subject: [PATCH] Rename gettid() functions.
+
+glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts.
+---
+ src/core/lib/gpr/log_linux.cc | 6 ++----
+ src/core/lib/gpr/log_posix.cc | 4 ++--
+ src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++--
+ 3 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/third_party/grpc/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
+index 81026e5689b..8b597b4cf2f 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_linux.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_linux.cc
+@@ -40,7 +40,7 @@
+ #include <time.h>
+ #include <unistd.h>
+
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -70,7 +70,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
+ struct tm tm;
+ static __thread long tid = 0;
+- if (tid == 0) tid = gettid();
++ if (tid == 0) tid = sys_gettid();
+
+ timer = static_cast<time_t>(now.tv_sec);
+ final_slash = strrchr(args->file, '/');
+diff --git a/third_party/grpc/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
+index b6edc14ab6b..2f7c6ce3760 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_posix.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_posix.cc
+@@ -31,7 +31,7 @@
+ #include <string.h>
+ #include <time.h>
+
+-static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
++static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -86,7 +86,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ char* prefix;
+ gpr_asprintf(&prefix, "%s%s.%09d %7" PRIdPTR " %s:%d]",
+ gpr_log_severity_string(args->severity), time_buffer,
+- (int)(now.tv_nsec), gettid(), display_file, args->line);
++ (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
+
+ fprintf(stderr, "%-70s %s\n", prefix, args->message);
+ gpr_free(prefix);
+diff --git a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
+index c2d80c08ddb..4a83cb6c215 100644
+--- a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
++++ b/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
+@@ -1077,7 +1077,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
+ }
+
+ #ifndef NDEBUG
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+ #endif
+
+ /* pollset->mu lock must be held by the caller before calling this.
+@@ -1097,7 +1097,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
+ #define WORKER_PTR (&worker)
+ #endif
+ #ifndef NDEBUG
+- WORKER_PTR->originator = gettid();
++ WORKER_PTR->originator = sys_gettid();
+ #endif
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
+ gpr_log(GPR_INFO,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/python-stub-path-fix.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/python-stub-path-fix.patch
new file mode 100644
index 000000000000..cbc4192d2d9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/python-stub-path-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt
+index dac21c9a83..69b11c283f 100644
+--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt
++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/python_stub_template.txt
+@@ -67,7 +67,7 @@ def FindPythonBinary(module_space):
+ return os.path.join(module_space, PYTHON_BINARY)
+ else:
+ # Case 4: Path has to be looked up in the search path.
+- return SearchPath(PYTHON_BINARY)
++ return "NIX_STORE_PYTHON_PATH"
+
+ def CreatePythonPathEntries(python_imports, module_space):
+ parts = python_imports.split(':');
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
new file mode 100644
index 000000000000..92bbbd452145
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -0,0 +1,564 @@
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub
+, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
+# this package (through the fixpoint glass)
+, bazel_self
+, lr, xe, zip, unzip, bash, writeCBin, coreutils
+, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
+# updater
+, python27, python3, writeScript
+# Apple dependencies
+, cctools, llvmPackages_8, CoreFoundation, CoreServices, Foundation
+# Allow to independently override the jdks used to build and run respectively
+, buildJdk, runJdk
+, buildJdkName
+, runtimeShell
+# Downstream packages for tests
+, bazel-watcher
+# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
+# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
+, enableNixHacks ? false
+, gcc-unwrapped
+, autoPatchelfHook
+, file
+, substituteAll
+, writeTextFile
+}:
+
+let
+ version = "0.29.1";
+
+ src = fetchurl {
+ url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
+ sha256 = "1rcd6xy61n07n7m6dgcw23275r8z3gkwmqdkd48nwrq8yb7m4al7";
+ };
+
+ # Update with `eval $(nix-build -A bazel.updater)`,
+ # then add new dependencies from the dict in ./src-deps.json as required.
+ srcDeps = lib.attrsets.attrValues srcDepsSet;
+ srcDepsSet =
+ let
+ srcs = (builtins.fromJSON (builtins.readFile ./src-deps.json));
+ toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
+ urls = d.urls;
+ sha256 = d.sha256;
+ });
+ in builtins.listToAttrs (map toFetchurl [
+ srcs.desugar_jdk_libs
+ srcs.io_bazel_skydoc
+ srcs.bazel_skylib
+ srcs.io_bazel_rules_sass
+ srcs.platforms
+ (if stdenv.hostPlatform.isDarwin
+ then srcs."java_tools_javac11_darwin-v4.0.zip"
+ else srcs."java_tools_javac11_linux-v4.0.zip")
+ srcs."coverage_output_generator-v1.0.zip"
+ srcs.build_bazel_rules_nodejs
+ srcs."android_tools_pkg-0.8.tar.gz"
+ srcs."0.27.1.tar.gz"
+ srcs.rules_pkg
+ srcs.rules_cc
+ srcs.rules_java
+ srcs.rules_proto
+ ]);
+
+ distDir = runCommand "bazel-deps" {} ''
+ mkdir -p $out
+ for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
+ '';
+
+ defaultShellPath = lib.makeBinPath
+ # Keep this list conservative. For more exotic tools, prefer to use
+ # @rules_nixpkgs to pull in tools from the nix repository. Example:
+ #
+ # WORKSPACE:
+ #
+ # nixpkgs_git_repository(
+ # name = "nixpkgs",
+ # revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
+ # )
+ #
+ # # This defines an external Bazel workspace.
+ # nixpkgs_package(
+ # name = "bison",
+ # repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
+ # )
+ #
+ # some/BUILD.bazel:
+ #
+ # genrule(
+ # ...
+ # cmd = "$(location @bison//:bin/bison) -other -args",
+ # tools = [
+ # ...
+ # "@bison//:bin/bison",
+ # ],
+ # )
+ #
+ [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip file zip ];
+
+ # Java toolchain used for the build and tests
+ javaToolchain = "@bazel_tools//tools/jdk:toolchain_host${buildJdkName}";
+
+ platforms = lib.platforms.linux ++ lib.platforms.darwin;
+
+ # This repository is fetched by bazel at runtime
+ # however it contains prebuilt java binaries, with wrong interpreter
+ # and libraries path.
+ # We prefetch it, patch it, and override it in a global bazelrc.
+ system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
+
+ remote_java_tools = stdenv.mkDerivation {
+ name = "remote_java_tools_${system}";
+
+ src = srcDepsSet."java_tools_javac11_${system}-v4.0.zip";
+
+ nativeBuildInputs = [ autoPatchelfHook unzip ];
+ buildInputs = [ gcc-unwrapped ];
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ mkdir $out;
+ '';
+
+ installPhase = ''
+ cp -Ra * $out/
+ touch $out/WORKSPACE
+ '';
+ };
+
+ bazelRC = writeTextFile {
+ name = "bazel-rc";
+ text = ''
+ build --override_repository=${remote_java_tools.name}=${remote_java_tools}
+ build --distdir=${distDir}
+ startup --server_javabase=${runJdk}
+
+ # load default location for the system wide configuration
+ try-import /etc/bazel.bazelrc
+ '';
+ };
+ stdenv' = if stdenv.isDarwin then llvmPackages_8.libcxxStdenv else stdenv;
+
+in
+stdenv'.mkDerivation rec {
+ pname = "bazel";
+ inherit version;
+
+ meta = with lib; {
+ homepage = "https://github.com/bazelbuild/bazel/";
+ description = "Build tool that builds code quickly and reliably";
+ license = licenses.asl20;
+ maintainers = [ maintainers.mboes ];
+ inherit platforms;
+ };
+
+ inherit src;
+ sourceRoot = ".";
+
+ patches = [
+ # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
+ # This is breaking the build of any C target. This patch removes the last
+ # argument if it's found to be an empty string.
+ ../trim-last-argument-to-gcc-if-empty.patch
+ ./glibc.patch
+
+ # --experimental_strict_action_env (which may one day become the default
+ # see bazelbuild/bazel#2574) hardcodes the default
+ # action environment to a non hermetic value (e.g. "/usr/local/bin").
+ # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
+ # So we are replacing this bazel paths by defaultShellPath,
+ # improving hermeticity and making it work in nixos.
+ (substituteAll {
+ src = ../strict_action_env.patch;
+ strictActionEnvPatch = defaultShellPath;
+ })
+
+ # bazel reads its system bazelrc in /etc
+ # override this path to a builtin one
+ (substituteAll {
+ src = ../bazel_rc.patch;
+ bazelSystemBazelRCPath = bazelRC;
+ })
+ ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
+
+
+ # Additional tests that check bazel’s functionality. Execute
+ #
+ # nix-build . -A bazel.tests
+ #
+ # in the nixpkgs checkout root to exercise them locally.
+ passthru.tests =
+ let
+ runLocal = name: attrs: script:
+ let
+ attrs' = removeAttrs attrs [ "buildInputs" ];
+ buildInputs = [ python3 ] ++ (attrs.buildInputs or []);
+ in
+ runCommandCC name ({
+ inherit buildInputs;
+ preferLocalBuild = true;
+ meta.platforms = platforms;
+ } // attrs') script;
+
+ # bazel wants to extract itself into $install_dir/install every time it runs,
+ # so let’s do that only once.
+ extracted = bazelPkg:
+ let install_dir =
+ # `install_base` field printed by `bazel info`, minus the hash.
+ # yes, this path is kinda magic. Sorry.
+ "$HOME/.cache/bazel/_bazel_nixbld";
+ in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
+ export HOME=$(mktemp -d)
+ touch WORKSPACE # yeah, everything sucks
+ install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
+ # assert it’s actually below install_dir
+ [[ "$install_base" =~ ${install_dir} ]] \
+ || (echo "oh no! $install_base but we are \
+ trying to copy ${install_dir} to $out instead!"; exit 1)
+ cp -R ${install_dir} $out
+ '';
+
+ bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
+ let
+ be = extracted bazelPkg;
+ in runLocal name { inherit buildInputs; } (
+ # skip extraction caching on Darwin, because nobody knows how Darwin works
+ (lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ # set up home with pre-unpacked bazel
+ export HOME=$(mktemp -d)
+ mkdir -p ${be.install_dir}
+ cp -R ${be}/install ${be.install_dir}
+
+ # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
+ # Bazel checks whether the mtime of the install dir files
+ # is >9 years in the future, otherwise it extracts itself again.
+ # see PosixFileMTime::IsUntampered in src/main/cpp/util
+ # What the hell bazel.
+ ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
+ '')
+ +
+ ''
+ # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
+ # about why to create a subdir for the workspace.
+ cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
+
+ ${bazelScript}
+
+ touch $out
+ '');
+
+ bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
+
+ bazel-examples = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "examples";
+ rev = "5d8c8961a2516ebf875787df35e98cadd08d43dc";
+ sha256 = "03c1bwlq5bs3hg96v4g4pg2vqwhqq6w538h66rcpw02f83yy7fs8";
+ };
+
+ in (if !stdenv.hostPlatform.isDarwin then {
+ # `extracted` doesn’t work on darwin
+ shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+ } else {}) // {
+ bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
+ cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
+ pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+
+ bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+ pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ # downstream packages using buildBazelPackage
+ # fixed-output hashes of the fetch phase need to be spot-checked manually
+ downstream = recurseIntoAttrs ({
+ inherit bazel-watcher;
+ }
+ # dm-sonnet is only packaged for linux
+ // (lib.optionalAttrs stdenv.isLinux {
+ # TODO(timokau) dm-sonnet is broken currently
+ # dm-sonnet-linux = python3.pkgs.dm-sonnet;
+ }));
+ };
+
+ # update the list of workspace dependencies
+ passthru.updater = writeScript "update-bazel-deps.sh" ''
+ #!${runtimeShell}
+ cat ${runCommand "bazel-deps.json" {} ''
+ ${unzip}/bin/unzip ${src} WORKSPACE
+ ${python3}/bin/python3 ${../update-srcDeps.py} ./WORKSPACE > $out
+ ''} > ${builtins.toString ./src-deps.json}
+ '';
+
+ # Necessary for the tests to pass on Darwin with sandbox enabled.
+ # Bazel starts a local server and needs to bind a local address.
+ __darwinAllowLocalNetworking = true;
+
+ # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
+ customBash = writeCBin "bash" ''
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+
+ extern char **environ;
+
+ int main(int argc, char *argv[]) {
+ char *path = getenv("PATH");
+ char *pathToAppend = "${defaultShellPath}";
+ char *newPath;
+ if (path != NULL) {
+ int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
+ newPath = malloc(length * sizeof(char));
+ snprintf(newPath, length, "%s:%s", path, pathToAppend);
+ } else {
+ newPath = pathToAppend;
+ }
+ setenv("PATH", newPath, 1);
+ execve("${bash}/bin/bash", argv, environ);
+ return 0;
+ }
+ '';
+
+ postPatch = let
+
+ darwinPatches = ''
+ bazelLinkFlags () {
+ eval set -- "$NIX_LDFLAGS"
+ local flag
+ for flag in "$@"; do
+ printf ' -Wl,%s' "$flag"
+ done
+ }
+
+ # Disable Bazel's Xcode toolchain detection which would configure compilers
+ # and linkers from Xcode instead of from PATH
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
+ export GCOV=${coreutils}/bin/false
+
+ # Framework search paths aren't added by bintools hook
+ # https://github.com/NixOS/nixpkgs/pull/41914
+ export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+
+ # libcxx includes aren't added by libcxx hook
+ # https://github.com/NixOS/nixpkgs/pull/41589
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${llvmPackages_8.libcxx}/include/c++/v1"
+
+ # don't use system installed Xcode to run clang, use Nix clang instead
+ sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv'.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
+ scripts/bootstrap/compile.sh \
+ src/tools/xcode/realpath/BUILD \
+ src/tools/xcode/stdredirect/BUILD \
+ tools/osx/BUILD
+
+ # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
+ sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
+
+ # clang installed from Xcode has a compatibility wrapper that forwards
+ # invocations of gcc to clang, but vanilla clang doesn't
+ sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
+
+ sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
+ wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
+ for wrapper in "''${wrappers[@]}"; do
+ sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
+ done
+ '';
+
+ genericPatches = ''
+ # Substitute j2objc and objc wrapper's python shebang to plain python path.
+ # These scripts explicitly depend on Python 2.7, hence we use python27.
+ # See also `postFixup` where python27 is added to $out/nix-support
+ substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+
+ # md5sum is part of coreutils
+ sed -i 's|/sbin/md5|md5sum|' \
+ src/BUILD
+
+ # substituteInPlace is rather slow, so prefilter the files with grep
+ grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
+ # If you add more replacements here, you must change the grep above!
+ # Only files containing /bin are taken into account.
+ # We default to python3 where possible. See also `postFixup` where
+ # python3 is added to $out/nix-support
+ substituteInPlace "$path" \
+ --replace /bin/bash ${customBash}/bin/bash \
+ --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+ --replace "/usr/bin/env python" ${python3}/bin/python \
+ --replace /usr/bin/env ${coreutils}/bin/env \
+ --replace /bin/true ${coreutils}/bin/true
+ done
+
+ # bazel test runner include references to /bin/bash
+ substituteInPlace tools/build_rules/test_rules.bzl \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ for i in $(find tools/cpp/ -type f)
+ do
+ substituteInPlace $i \
+ --replace /bin/bash ${customBash}/bin/bash
+ done
+
+ # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
+ substituteInPlace scripts/bootstrap/compile.sh \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ # add nix environment vars to .bazelrc
+ cat >> .bazelrc <<EOF
+ build --distdir=${distDir}
+ fetch --distdir=${distDir}
+ build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
+ build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+ build --linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+ build --host_linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
+ build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
+ build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
+ build --host_javabase='@local_jdk//:jdk'
+ build --host_java_toolchain='${javaToolchain}'
+ EOF
+
+ # add the same environment vars to compile.sh
+ sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
+ -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
+ -i scripts/bootstrap/compile.sh
+
+ # This is necessary to avoid:
+ # "error: no visible @interface for 'NSDictionary' declares the selector
+ # 'initWithContentsOfURL:error:'"
+ # This can be removed when the apple_sdk is upgraded beyond 10.13+
+ sed -i '/initWithContentsOfURL:versionPlistUrl/ {
+ N
+ s/error:nil\];/\];/
+ }' tools/osx/xcode_locator.m
+
+ # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
+ echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
+ cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
+ mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
+
+ patchShebangs .
+ '';
+ in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
+ + genericPatches;
+
+ buildInputs = [
+ buildJdk
+ python3
+ ];
+
+ # when a command can’t be found in a bazel build, you might also
+ # need to add it to `defaultShellPath`.
+ nativeBuildInputs = [
+ zip
+ python3
+ unzip
+ makeWrapper
+ which
+ customBash
+ ] ++ lib.optionals (stdenv.isDarwin) [ cctools CoreFoundation CoreServices Foundation ];
+
+ # Bazel makes extensive use of symlinks in the WORKSPACE.
+ # This causes problems with infinite symlinks if the build output is in the same location as the
+ # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
+ # subdirectory.
+ # Failing to do this causes "infinite symlink expansion detected"
+ preBuildPhases = ["preBuildPhase"];
+ preBuildPhase = ''
+ mkdir bazel_src
+ shopt -s dotglob extglob
+ mv !(bazel_src) bazel_src
+ '';
+
+ buildPhase = ''
+ # Increasing memory during compilation might be necessary.
+ # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
+ ./bazel_src/compile.sh
+ ./bazel_src/scripts/generate_bash_completion.sh \
+ --bazel=./bazel_src/output/bazel \
+ --output=./bazel_src/output/bazel-complete.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-header.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-template.bash
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
+ # if it can’t find something in tools, it calls $out/bin/bazel-real
+ cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+ mv ./bazel_src/output/bazel $out/bin/bazel-real
+
+ # shell completion files
+ mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
+ mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel
+ cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ export TEST_TMPDIR=$(pwd)
+
+ hello_test () {
+ $out/bin/bazel test --distdir=${distDir} \
+ --test_output=errors \
+ --java_toolchain='${javaToolchain}' \
+ examples/cpp:hello-success_test \
+ examples/java-native/src/test/java/com/example/myproject:hello
+ }
+
+ cd ./bazel_src
+
+ # test whether $WORKSPACE_ROOT/tools/bazel works
+
+ mkdir -p tools
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exit 1
+ EOF
+ chmod +x tools/bazel
+
+ # first call should fail if tools/bazel is used
+ ! hello_test
+
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exec "$BAZEL_REAL" "$@"
+ EOF
+
+ # second call succeeds because it defers to $out/bin/bazel-real
+ hello_test
+ '';
+
+ # Save paths to hardcoded dependencies so Nix can detect them.
+ postFixup = ''
+ mkdir -p $out/nix-support
+ echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
+ # The templates get tar’d up into a .jar,
+ # so nix can’t detect python is needed in the runtime closure
+ # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+ # default to using python3. Therefore, both python27 and python3 are
+ # runtime dependencies.
+ echo "${python27}" >> $out/nix-support/depends
+ echo "${python3}" >> $out/nix-support/depends
+ '' + lib.optionalString stdenv.isDarwin ''
+ echo "${cctools}" >> $out/nix-support/depends
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/glibc.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/glibc.patch
new file mode 100644
index 000000000000..c4de48068f11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/glibc.patch
@@ -0,0 +1,78 @@
+From https://github.com/grpc/grpc/commit/57586a1ca7f17b1916aed3dea4ff8de872dbf853
+From: Benjamin Peterson <benjamin@dropbox.com>
+Date: Fri, 3 May 2019 08:11:00 -0700
+Subject: [PATCH] Rename gettid() functions.
+
+glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts.
+---
+ src/core/lib/gpr/log_linux.cc | 6 ++----
+ src/core/lib/gpr/log_posix.cc | 4 ++--
+ src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++--
+ 3 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/third_party/grpc/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
+index 81026e5689b..8b597b4cf2f 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_linux.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_linux.cc
+@@ -40,7 +40,7 @@
+ #include <time.h>
+ #include <unistd.h>
+
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -70,7 +70,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
+ struct tm tm;
+ static __thread long tid = 0;
+- if (tid == 0) tid = gettid();
++ if (tid == 0) tid = sys_gettid();
+
+ timer = static_cast<time_t>(now.tv_sec);
+ final_slash = strrchr(args->file, '/');
+diff --git a/third_party/grpc/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
+index b6edc14ab6b..2f7c6ce3760 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_posix.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_posix.cc
+@@ -31,7 +31,7 @@
+ #include <string.h>
+ #include <time.h>
+
+-static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
++static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -86,7 +86,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ char* prefix;
+ gpr_asprintf(&prefix, "%s%s.%09d %7" PRIdPTR " %s:%d]",
+ gpr_log_severity_string(args->severity), time_buffer,
+- (int)(now.tv_nsec), gettid(), display_file, args->line);
++ (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
+
+ fprintf(stderr, "%-70s %s\n", prefix, args->message);
+ gpr_free(prefix);
+diff --git a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
+index c2d80c08ddb..4a83cb6c215 100644
+--- a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
++++ b/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
+@@ -1077,7 +1077,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
+ }
+
+ #ifndef NDEBUG
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+ #endif
+
+ /* pollset->mu lock must be held by the caller before calling this.
+@@ -1097,7 +1097,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
+ #define WORKER_PTR (&worker)
+ #endif
+ #ifndef NDEBUG
+- WORKER_PTR->originator = gettid();
++ WORKER_PTR->originator = sys_gettid();
+ #endif
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
+ gpr_log(GPR_INFO,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/src-deps.json b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/src-deps.json
new file mode 100644
index 000000000000..f93794249ec7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/src-deps.json
@@ -0,0 +1,506 @@
+{
+ "0.16.2.zip": {
+ "name": "0.16.2.zip",
+ "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
+ "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
+ ]
+ },
+ "0.27.1.tar.gz": {
+ "name": "0.27.1.tar.gz",
+ "sha256": "28cb3666da80fbc62d4c46814f5468dd5d0b59f9064c0b933eee3140d706d330",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz"
+ ]
+ },
+ "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip": {
+ "name": "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+ ]
+ },
+ "41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz": {
+ "name": "41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+ "sha256": "fdc34621839104b57363a258eab9d821b02ff7837923cfe7fb6fd67182780829",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+ "https://github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz"
+ ]
+ },
+ "441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip": {
+ "name": "441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "sha256": "a07fe5e75964361885db725039c2ba673f0ee0313d971ae4f50c9b18cd28b0b5",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
+ ]
+ },
+ "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+ "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": {
+ "name": "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
+ ]
+ },
+ "android_tools_pkg-0.8.tar.gz": {
+ "name": "android_tools_pkg-0.8.tar.gz",
+ "sha256": "a9eac6e1b27d5549edaaa724b20eb1cdae6253b84f44d5744c30372bd523cfcd",
+ "urls": [
+ "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.8.tar.gz"
+ ]
+ },
+ "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz": {
+ "name": "b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "sha256": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz"
+ ]
+ },
+ "bazel_j2objc": {
+ "name": "bazel_j2objc",
+ "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+ "strip_prefix": "j2objc-2.5",
+ "urls": [
+ "https://miirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+ "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
+ ]
+ },
+ "bazel_skylib": {
+ "name": "bazel_skylib",
+ "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
+ "strip_prefix": "bazel-skylib-f83cb8dd6f5658bc574ccd873e25197055265d1c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
+ ]
+ },
+ "bazel_toolchains": {
+ "name": "bazel_toolchains",
+ "sha256": "28cb3666da80fbc62d4c46814f5468dd5d0b59f9064c0b933eee3140d706d330",
+ "strip_prefix": "bazel-toolchains-0.27.1",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/archive/0.27.1.tar.gz"
+ ]
+ },
+ "build_bazel_rules_nodejs": {
+ "name": "build_bazel_rules_nodejs",
+ "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
+ "strip_prefix": "rules_nodejs-0.16.2",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
+ "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
+ ]
+ },
+ "com_google_googletest": {
+ "name": "com_google_googletest",
+ "sha256": "0fb00ff413f6b9b80ccee44a374ca7a18af7315aea72a43c62f2acd1ca74e9b5",
+ "strip_prefix": "googletest-f13bbe2992d188e834339abe6f715b2b2f840a77",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/googletest/archive/f13bbe2992d188e834339abe6f715b2b2f840a77.tar.gz",
+ "https://github.com/google/googletest/archive/f13bbe2992d188e834339abe6f715b2b2f840a77.tar.gz"
+ ]
+ },
+ "coverage_output_generator-v1.0.zip": {
+ "name": "coverage_output_generator-v1.0.zip",
+ "sha256": "cc470e529fafb6165b5be3929ff2d99b38429b386ac100878687416603a67889",
+ "urls": [
+ "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v1.0.zip"
+ ]
+ },
+ "desugar_jdk_libs": {
+ "name": "desugar_jdk_libs",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
+ "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": {
+ "name": "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
+ ]
+ },
+ "io_bazel_rules_sass": {
+ "name": "io_bazel_rules_sass",
+ "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
+ "strip_prefix": "rules_sass-8ccf4f1c351928b55d5dddf3672e3667f6978d60",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
+ ]
+ },
+ "io_bazel_skydoc": {
+ "name": "io_bazel_skydoc",
+ "sha256": "fdc34621839104b57363a258eab9d821b02ff7837923cfe7fb6fd67182780829",
+ "strip_prefix": "skydoc-41c28e43dffbae39c52dd4b91932d1209e5a8893",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz",
+ "https://github.com/bazelbuild/skydoc/archive/41c28e43dffbae39c52dd4b91932d1209e5a8893.tar.gz"
+ ]
+ },
+ "java_tools_javac11_darwin-v4.0.zip": {
+ "name": "java_tools_javac11_darwin-v4.0.zip",
+ "sha256": "fbf5bf22e9aab9c622e4c8c59314a1eef5ea09eafc5672b4f3250dc0b971bbcc",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_darwin-v4.0.zip"
+ ]
+ },
+ "java_tools_javac11_linux-v4.0.zip": {
+ "name": "java_tools_javac11_linux-v4.0.zip",
+ "sha256": "96e223094a12c842a66db0bb7bb6866e88e26e678f045842911f9bd6b47161f5",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_linux-v4.0.zip"
+ ]
+ },
+ "java_tools_javac11_windows-v4.0.zip": {
+ "name": "java_tools_javac11_windows-v4.0.zip",
+ "sha256": "a1de51447b2ba2eab923d589ba6c72c289c16e6091e6a3bb3e67a05ef4ad200c",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v4.0/java_tools_javac11_windows-v4.0.zip"
+ ]
+ },
+ "java_tools_langtools_javac10": {
+ "name": "java_tools_langtools_javac10",
+ "sha256": "0e9c9ac5ef17869de3cb8c3497c4c0d31836ef7b63efe1690506f53783adb212",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10_v2.zip"
+ ]
+ },
+ "java_tools_langtools_javac11": {
+ "name": "java_tools_langtools_javac11",
+ "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
+ ]
+ },
+ "java_tools_langtools_javac12": {
+ "name": "java_tools_langtools_javac12",
+ "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
+ ]
+ },
+ "java_tools_langtools_javac9": {
+ "name": "java_tools_langtools_javac9",
+ "sha256": "d94befcfb325a9a62aebc2052e631fde2322b4df5c82a19ed260b38ba12a0ad1",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9_v2.zip"
+ ]
+ },
+ "jdk10-server-release-1804.tar.xz": {
+ "name": "jdk10-server-release-1804.tar.xz",
+ "sha256": "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be",
+ "urls": [
+ "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"
+ ]
+ },
+ "jdk9-server-release-1708.tar.xz": {
+ "name": "jdk9-server-release-1708.tar.xz",
+ "sha256": "72e7843902b0395e2d30e1e9ad2a5f05f36a4bc62529828bcbc698d54aec6022",
+ "urls": [
+ "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz"
+ ]
+ },
+ "openjdk10_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk10_linux_archive",
+ "sha256": "b3c2d762091a615b0c1424ebbd05d75cc114da3bf4f25a0dec5c51ea7e84146f",
+ "strip_prefix": "zulu10.2+3-jdk10.0.1-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk11_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk11_linux_archive",
+ "sha256": "ddb0fd4526089cf1ce2db36282c282263f587a9e8be373fa02f511a12923cc48",
+ "strip_prefix": "zulu11.31.11-ca-jdk11.0.3-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk12_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk12_linux_archive",
+ "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
+ "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk9_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk9_linux_archive",
+ "sha256": "45f2dfbee93b91b1468cf81d843fc6d9a47fef1f831c0b7ceff4f1eb6e6851c8",
+ "strip_prefix": "zulu9.0.7.1-jdk9.0.7-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk_linux": {
+ "downloaded_file_path": "zulu-linux.tar.gz",
+ "name": "openjdk_linux",
+ "sha256": "460d8a4f0c0204160b48086e341b22943c9cca471b195340e75b38ae9eb33c1c",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209950.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64": {
+ "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
+ "name": "openjdk_linux_aarch64",
+ "sha256": "23c37c0c3a8fdcbc68e96e70ff5c5c020c14db76deaae9b547849afda4586e5e",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-allmodules-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_minimal": {
+ "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
+ "name": "openjdk_linux_aarch64_minimal",
+ "sha256": "7af2583fe5ef0a781d4a9dca0c0160d42e7db1305ec1b66f98aa44c91cc875df",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-minimal-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_vanilla": {
+ "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
+ "name": "openjdk_linux_aarch64_vanilla",
+ "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
+ ]
+ },
+ "openjdk_linux_minimal": {
+ "downloaded_file_path": "zulu-linux-minimal.tar.gz",
+ "name": "openjdk_linux_minimal",
+ "sha256": "5123bc8dd21886761d1fd9ca0fb1898b3372d7243064a070ec81ca9c9d1a6791",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556011926.tar.gz"
+ ]
+ },
+ "openjdk_linux_vanilla": {
+ "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
+ "name": "openjdk_linux_vanilla",
+ "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk_macos": {
+ "downloaded_file_path": "zulu-macos.tar.gz",
+ "name": "openjdk_macos",
+ "sha256": "8fa61d85ca6f657d646fdb50cfc8634987f8f7d8a3250ed39fb7364647633252",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209951.tar.gz"
+ ]
+ },
+ "openjdk_macos_minimal": {
+ "downloaded_file_path": "zulu-macos-minimal.tar.gz",
+ "name": "openjdk_macos_minimal",
+ "sha256": "ac56e44db46fd56ac78b39b6823daed4faa74a2677ac340c7d217f863884ec0f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003114.tar.gz"
+ ]
+ },
+ "openjdk_macos_vanilla": {
+ "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
+ "name": "openjdk_macos_vanilla",
+ "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
+ ]
+ },
+ "openjdk_win": {
+ "downloaded_file_path": "zulu-win.zip",
+ "name": "openjdk_win",
+ "sha256": "e6ddb361309f8e84eb5fb5ad8b0f5cc031ba3679910139262c31efd8f7579d05",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209972.zip"
+ ]
+ },
+ "openjdk_win_minimal": {
+ "downloaded_file_path": "zulu-win-minimal.zip",
+ "name": "openjdk_win_minimal",
+ "sha256": "8e5dada6e9ebcc9ce29b4d051449bb95d3ee1e620e166da862224bbf15211f8b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003136.zip"
+ ]
+ },
+ "openjdk_win_vanilla": {
+ "downloaded_file_path": "zulu-win-vanilla.zip",
+ "name": "openjdk_win_vanilla",
+ "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
+ ]
+ },
+ "platforms": {
+ "name": "platforms",
+ "sha256": "a07fe5e75964361885db725039c2ba673f0ee0313d971ae4f50c9b18cd28b0b5",
+ "strip_prefix": "platforms-441afe1bfdadd6236988e9cac159df6b5a9f5a98",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
+ ]
+ },
+ "rules_cc": {
+ "name": "rules_cc",
+ "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+ "strip_prefix": "rules_cc-0d5f3f2768c6ca2faca0079a997a97ce22997a0c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+ ]
+ },
+ "rules_java": {
+ "name": "rules_java",
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "rules_pkg": {
+ "name": "rules_pkg",
+ "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+ ]
+ },
+ "rules_pkg-0.2.0.tar.gz": {
+ "name": "rules_pkg-0.2.0.tar.gz",
+ "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+ ]
+ },
+ "rules_proto": {
+ "name": "rules_proto",
+ "sha256": "88b0a90433866b44bb4450d4c30bc5738b8c4f9c9ba14e9661deb123f56a833d",
+ "strip_prefix": "rules_proto-b0cc14be5da05168b01db282fe93bdf17aa2b9f4",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/b0cc14be5da05168b01db282fe93bdf17aa2b9f4.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz": {
+ "name": "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz",
+ "sha256": "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": {
+ "name": "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz",
+ "sha256": "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": {
+ "name": "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip",
+ "sha256": "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": {
+ "name": "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz",
+ "sha256": "232b1c3511f0d26e92582b7c3cc363be7ac633e371854ca2f2e9f2b50eb72a75",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": {
+ "name": "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz",
+ "sha256": "1edf366ee821e5db8e348152fcb337b28dfd6bf0f97943c270dcc6747cedb6cb",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-win_x64.zip": {
+ "name": "zulu11.2.3-jdk11.0.1-win_x64.zip",
+ "sha256": "8e1e2b8347de6746f3fd1538840dd643201533ab113abc4ed93678e342d28aa3",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-win_x64.zip"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz",
+ "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip",
+ "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-win_x64.zip",
+ "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
+ ]
+ },
+ "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz": {
+ "name": "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz",
+ "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": {
+ "name": "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz",
+ "sha256": "f27cb933de4f9e7fe9a703486cf44c84bc8e9f138be0c270c9e5716a32367e87",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz": {
+ "name": "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz",
+ "sha256": "404e7058ff91f956612f47705efbee8e175a38b505fb1b52d8c1ea98718683de",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip": {
+ "name": "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip",
+ "sha256": "e738829017f107e7a7cd5069db979398ec3c3f03ef56122f89ba38e7374f63ed",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip"
+ ]
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
new file mode 100644
index 000000000000..5eb0926503c8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -0,0 +1,565 @@
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub
+, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
+# this package (through the fixpoint glass)
+, bazel_self
+, lr, xe, zip, unzip, bash, writeCBin, coreutils
+, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
+# updater
+, python27, python3, writeScript
+# Apple dependencies
+, cctools, llvmPackages_8, CoreFoundation, CoreServices, Foundation
+# Allow to independently override the jdks used to build and run respectively
+, buildJdk, runJdk
+, buildJdkName
+, runtimeShell
+# Downstream packages for tests
+, bazel-watcher
+# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
+# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
+, enableNixHacks ? false
+, gcc-unwrapped
+, autoPatchelfHook
+, file
+, substituteAll
+, writeTextFile
+}:
+
+let
+ version = "1.2.1";
+
+ src = fetchurl {
+ url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
+ sha256 = "1qfk14mgx1m454b4w4ldggljzqkqwpdwrlynq7rc8aq11yfs8p95";
+ };
+
+ # Update with `eval $(nix-build -A bazel.updater)`,
+ # then add new dependencies from the dict in ./src-deps.json as required.
+ srcDeps = lib.attrsets.attrValues srcDepsSet;
+ srcDepsSet =
+ let
+ srcs = (builtins.fromJSON (builtins.readFile ./src-deps.json));
+ toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
+ urls = d.urls;
+ sha256 = d.sha256;
+ });
+ in builtins.listToAttrs (map toFetchurl [
+ srcs.desugar_jdk_libs
+ srcs.io_bazel_skydoc
+ srcs.bazel_skylib
+ srcs.io_bazel_rules_sass
+ srcs.platforms
+ (if stdenv.hostPlatform.isDarwin
+ then srcs."java_tools_javac11_darwin-v6.1.zip"
+ else srcs."java_tools_javac11_linux-v6.1.zip")
+ srcs."coverage_output_generator-v2.0.zip"
+ srcs.build_bazel_rules_nodejs
+ srcs."android_tools_pkg-0.12.tar.gz"
+ srcs."0.28.3.tar.gz"
+ srcs.rules_pkg
+ srcs.rules_cc
+ srcs.rules_java
+ srcs.rules_proto
+ ]);
+
+ distDir = runCommand "bazel-deps" {} ''
+ mkdir -p $out
+ for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
+ '';
+
+ defaultShellPath = lib.makeBinPath
+ # Keep this list conservative. For more exotic tools, prefer to use
+ # @rules_nixpkgs to pull in tools from the nix repository. Example:
+ #
+ # WORKSPACE:
+ #
+ # nixpkgs_git_repository(
+ # name = "nixpkgs",
+ # revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
+ # )
+ #
+ # # This defines an external Bazel workspace.
+ # nixpkgs_package(
+ # name = "bison",
+ # repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
+ # )
+ #
+ # some/BUILD.bazel:
+ #
+ # genrule(
+ # ...
+ # cmd = "$(location @bison//:bin/bison) -other -args",
+ # tools = [
+ # ...
+ # "@bison//:bin/bison",
+ # ],
+ # )
+ #
+ [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip file zip ];
+
+ # Java toolchain used for the build and tests
+ javaToolchain = "@bazel_tools//tools/jdk:toolchain_host${buildJdkName}";
+
+ platforms = lib.platforms.linux ++ lib.platforms.darwin;
+
+ # This repository is fetched by bazel at runtime
+ # however it contains prebuilt java binaries, with wrong interpreter
+ # and libraries path.
+ # We prefetch it, patch it, and override it in a global bazelrc.
+ system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
+
+ remote_java_tools = stdenv.mkDerivation {
+ name = "remote_java_tools_${system}";
+
+ src = srcDepsSet."java_tools_javac11_${system}-v6.1.zip";
+
+ nativeBuildInputs = [ autoPatchelfHook unzip ];
+ buildInputs = [ gcc-unwrapped ];
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ mkdir $out;
+ '';
+
+ installPhase = ''
+ cp -Ra * $out/
+ touch $out/WORKSPACE
+ '';
+ };
+
+ bazelRC = writeTextFile {
+ name = "bazel-rc";
+ text = ''
+ build --override_repository=${remote_java_tools.name}=${remote_java_tools}
+ build --distdir=${distDir}
+ startup --server_javabase=${runJdk}
+
+ # load default location for the system wide configuration
+ try-import /etc/bazel.bazelrc
+ '';
+ };
+
+ stdenv' = if stdenv.isDarwin then llvmPackages_8.libcxxStdenv else stdenv;
+
+in
+stdenv'.mkDerivation rec {
+ pname = "bazel";
+ inherit version;
+
+ meta = with lib; {
+ homepage = "https://github.com/bazelbuild/bazel/";
+ description = "Build tool that builds code quickly and reliably";
+ license = licenses.asl20;
+ maintainers = [ maintainers.mboes ];
+ inherit platforms;
+ };
+
+ inherit src;
+ sourceRoot = ".";
+
+ patches = [
+ # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
+ # This is breaking the build of any C target. This patch removes the last
+ # argument if it's found to be an empty string.
+ ../trim-last-argument-to-gcc-if-empty.patch
+ ./glibc.patch
+
+ # --experimental_strict_action_env (which may one day become the default
+ # see bazelbuild/bazel#2574) hardcodes the default
+ # action environment to a non hermetic value (e.g. "/usr/local/bin").
+ # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
+ # So we are replacing this bazel paths by defaultShellPath,
+ # improving hermeticity and making it work in nixos.
+ (substituteAll {
+ src = ../strict_action_env.patch;
+ strictActionEnvPatch = defaultShellPath;
+ })
+
+ # bazel reads its system bazelrc in /etc
+ # override this path to a builtin one
+ (substituteAll {
+ src = ../bazel_rc.patch;
+ bazelSystemBazelRCPath = bazelRC;
+ })
+ ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
+
+
+ # Additional tests that check bazel’s functionality. Execute
+ #
+ # nix-build . -A bazel.tests
+ #
+ # in the nixpkgs checkout root to exercise them locally.
+ passthru.tests =
+ let
+ runLocal = name: attrs: script:
+ let
+ attrs' = removeAttrs attrs [ "buildInputs" ];
+ buildInputs = [ python3 ] ++ (attrs.buildInputs or []);
+ in
+ runCommandCC name ({
+ inherit buildInputs;
+ preferLocalBuild = true;
+ meta.platforms = platforms;
+ } // attrs') script;
+
+ # bazel wants to extract itself into $install_dir/install every time it runs,
+ # so let’s do that only once.
+ extracted = bazelPkg:
+ let install_dir =
+ # `install_base` field printed by `bazel info`, minus the hash.
+ # yes, this path is kinda magic. Sorry.
+ "$HOME/.cache/bazel/_bazel_nixbld";
+ in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
+ export HOME=$(mktemp -d)
+ touch WORKSPACE # yeah, everything sucks
+ install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
+ # assert it’s actually below install_dir
+ [[ "$install_base" =~ ${install_dir} ]] \
+ || (echo "oh no! $install_base but we are \
+ trying to copy ${install_dir} to $out instead!"; exit 1)
+ cp -R ${install_dir} $out
+ '';
+
+ bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
+ let
+ be = extracted bazelPkg;
+ in runLocal name { inherit buildInputs; } (
+ # skip extraction caching on Darwin, because nobody knows how Darwin works
+ (lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ # set up home with pre-unpacked bazel
+ export HOME=$(mktemp -d)
+ mkdir -p ${be.install_dir}
+ cp -R ${be}/install ${be.install_dir}
+
+ # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
+ # Bazel checks whether the mtime of the install dir files
+ # is >9 years in the future, otherwise it extracts itself again.
+ # see PosixFileMTime::IsUntampered in src/main/cpp/util
+ # What the hell bazel.
+ ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
+ '')
+ +
+ ''
+ # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
+ # about why to create a subdir for the workspace.
+ cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
+
+ ${bazelScript}
+
+ touch $out
+ '');
+
+ bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
+
+ bazel-examples = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "examples";
+ rev = "5d8c8961a2516ebf875787df35e98cadd08d43dc";
+ sha256 = "03c1bwlq5bs3hg96v4g4pg2vqwhqq6w538h66rcpw02f83yy7fs8";
+ };
+
+ in (if !stdenv.hostPlatform.isDarwin then {
+ # `extracted` doesn’t work on darwin
+ shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+ } else {}) // {
+ bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
+ cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
+ pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+
+ bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+ pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ # downstream packages using buildBazelPackage
+ # fixed-output hashes of the fetch phase need to be spot-checked manually
+ downstream = recurseIntoAttrs ({
+ inherit bazel-watcher;
+ }
+ # dm-sonnet is only packaged for linux
+ // (lib.optionalAttrs stdenv.isLinux {
+ # TODO(timokau) dm-sonnet is broken currently
+ # dm-sonnet-linux = python3.pkgs.dm-sonnet;
+ }));
+ };
+
+ # update the list of workspace dependencies
+ passthru.updater = writeScript "update-bazel-deps.sh" ''
+ #!${runtimeShell}
+ cat ${runCommand "bazel-deps.json" {} ''
+ ${unzip}/bin/unzip ${src} WORKSPACE
+ ${python3}/bin/python3 ${../update-srcDeps.py} ./WORKSPACE > $out
+ ''} > ${builtins.toString ./src-deps.json}
+ '';
+
+ # Necessary for the tests to pass on Darwin with sandbox enabled.
+ # Bazel starts a local server and needs to bind a local address.
+ __darwinAllowLocalNetworking = true;
+
+ # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
+ customBash = writeCBin "bash" ''
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+
+ extern char **environ;
+
+ int main(int argc, char *argv[]) {
+ char *path = getenv("PATH");
+ char *pathToAppend = "${defaultShellPath}";
+ char *newPath;
+ if (path != NULL) {
+ int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
+ newPath = malloc(length * sizeof(char));
+ snprintf(newPath, length, "%s:%s", path, pathToAppend);
+ } else {
+ newPath = pathToAppend;
+ }
+ setenv("PATH", newPath, 1);
+ execve("${bash}/bin/bash", argv, environ);
+ return 0;
+ }
+ '';
+
+ postPatch = let
+
+ darwinPatches = ''
+ bazelLinkFlags () {
+ eval set -- "$NIX_LDFLAGS"
+ local flag
+ for flag in "$@"; do
+ printf ' -Wl,%s' "$flag"
+ done
+ }
+
+ # Disable Bazel's Xcode toolchain detection which would configure compilers
+ # and linkers from Xcode instead of from PATH
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
+ export GCOV=${coreutils}/bin/false
+
+ # Framework search paths aren't added by bintools hook
+ # https://github.com/NixOS/nixpkgs/pull/41914
+ export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+
+ # libcxx includes aren't added by libcxx hook
+ # https://github.com/NixOS/nixpkgs/pull/41589
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${llvmPackages_8.libcxx}/include/c++/v1"
+
+ # don't use system installed Xcode to run clang, use Nix clang instead
+ sed -i -E "s;/usr/bin/xcrun --sdk macosx clang -mmacosx-version-min=10.9;${stdenv'.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
+ scripts/bootstrap/compile.sh \
+ src/tools/xcode/realpath/BUILD \
+ src/tools/xcode/stdredirect/BUILD \
+ tools/osx/BUILD
+
+ # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
+ sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
+
+ # clang installed from Xcode has a compatibility wrapper that forwards
+ # invocations of gcc to clang, but vanilla clang doesn't
+ sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
+
+ sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
+ wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
+ for wrapper in "''${wrappers[@]}"; do
+ sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
+ done
+ '';
+
+ genericPatches = ''
+ # Substitute j2objc and objc wrapper's python shebang to plain python path.
+ # These scripts explicitly depend on Python 2.7, hence we use python27.
+ # See also `postFixup` where python27 is added to $out/nix-support
+ substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+
+ # md5sum is part of coreutils
+ sed -i 's|/sbin/md5|md5sum|g' \
+ src/BUILD
+
+ # substituteInPlace is rather slow, so prefilter the files with grep
+ grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
+ # If you add more replacements here, you must change the grep above!
+ # Only files containing /bin are taken into account.
+ # We default to python3 where possible. See also `postFixup` where
+ # python3 is added to $out/nix-support
+ substituteInPlace "$path" \
+ --replace /bin/bash ${customBash}/bin/bash \
+ --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+ --replace "/usr/bin/env python" ${python3}/bin/python \
+ --replace /usr/bin/env ${coreutils}/bin/env \
+ --replace /bin/true ${coreutils}/bin/true
+ done
+
+ # bazel test runner include references to /bin/bash
+ substituteInPlace tools/build_rules/test_rules.bzl \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ for i in $(find tools/cpp/ -type f)
+ do
+ substituteInPlace $i \
+ --replace /bin/bash ${customBash}/bin/bash
+ done
+
+ # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
+ substituteInPlace scripts/bootstrap/compile.sh \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ # add nix environment vars to .bazelrc
+ cat >> .bazelrc <<EOF
+ build --distdir=${distDir}
+ fetch --distdir=${distDir}
+ build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
+ build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+ build --linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+ build --host_linkopt="$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
+ build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
+ build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
+ build --host_javabase='@local_jdk//:jdk'
+ build --host_java_toolchain='${javaToolchain}'
+ EOF
+
+ # add the same environment vars to compile.sh
+ sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv'.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
+ -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
+ -i scripts/bootstrap/compile.sh
+
+ # This is necessary to avoid:
+ # "error: no visible @interface for 'NSDictionary' declares the selector
+ # 'initWithContentsOfURL:error:'"
+ # This can be removed when the apple_sdk is upgraded beyond 10.13+
+ sed -i '/initWithContentsOfURL:versionPlistUrl/ {
+ N
+ s/error:nil\];/\];/
+ }' tools/osx/xcode_locator.m
+
+ # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
+ echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
+ cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
+ mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
+
+ patchShebangs .
+ '';
+ in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
+ + genericPatches;
+
+ buildInputs = [
+ buildJdk
+ python3
+ ];
+
+ # when a command can’t be found in a bazel build, you might also
+ # need to add it to `defaultShellPath`.
+ nativeBuildInputs = [
+ zip
+ python3
+ unzip
+ makeWrapper
+ which
+ customBash
+ ] ++ lib.optionals (stdenv.isDarwin) [ cctools CoreFoundation CoreServices Foundation ];
+
+ # Bazel makes extensive use of symlinks in the WORKSPACE.
+ # This causes problems with infinite symlinks if the build output is in the same location as the
+ # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
+ # subdirectory.
+ # Failing to do this causes "infinite symlink expansion detected"
+ preBuildPhases = ["preBuildPhase"];
+ preBuildPhase = ''
+ mkdir bazel_src
+ shopt -s dotglob extglob
+ mv !(bazel_src) bazel_src
+ '';
+
+ buildPhase = ''
+ # Increasing memory during compilation might be necessary.
+ # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
+ ./bazel_src/compile.sh
+ ./bazel_src/scripts/generate_bash_completion.sh \
+ --bazel=./bazel_src/output/bazel \
+ --output=./bazel_src/output/bazel-complete.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-header.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-template.bash
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
+ # if it can’t find something in tools, it calls $out/bin/bazel-real
+ cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+ mv ./bazel_src/output/bazel $out/bin/bazel-real
+
+ # shell completion files
+ mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
+ mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel
+ cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ export TEST_TMPDIR=$(pwd)
+
+ hello_test () {
+ $out/bin/bazel test --distdir=${distDir} \
+ --test_output=errors \
+ --java_toolchain='${javaToolchain}' \
+ examples/cpp:hello-success_test \
+ examples/java-native/src/test/java/com/example/myproject:hello
+ }
+
+ cd ./bazel_src
+
+ # test whether $WORKSPACE_ROOT/tools/bazel works
+
+ mkdir -p tools
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exit 1
+ EOF
+ chmod +x tools/bazel
+
+ # first call should fail if tools/bazel is used
+ ! hello_test
+
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exec "$BAZEL_REAL" "$@"
+ EOF
+
+ # second call succeeds because it defers to $out/bin/bazel-real
+ hello_test
+ '';
+
+ # Save paths to hardcoded dependencies so Nix can detect them.
+ postFixup = ''
+ mkdir -p $out/nix-support
+ echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
+ # The templates get tar’d up into a .jar,
+ # so nix can’t detect python is needed in the runtime closure
+ # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+ # default to using python3. Therefore, both python27 and python3 are
+ # runtime dependencies.
+ echo "${python27}" >> $out/nix-support/depends
+ echo "${python3}" >> $out/nix-support/depends
+ '' + lib.optionalString stdenv.isDarwin ''
+ echo "${cctools}" >> $out/nix-support/depends
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/glibc.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/glibc.patch
new file mode 100644
index 000000000000..c4de48068f11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/glibc.patch
@@ -0,0 +1,78 @@
+From https://github.com/grpc/grpc/commit/57586a1ca7f17b1916aed3dea4ff8de872dbf853
+From: Benjamin Peterson <benjamin@dropbox.com>
+Date: Fri, 3 May 2019 08:11:00 -0700
+Subject: [PATCH] Rename gettid() functions.
+
+glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts.
+---
+ src/core/lib/gpr/log_linux.cc | 6 ++----
+ src/core/lib/gpr/log_posix.cc | 4 ++--
+ src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++--
+ 3 files changed, 6 insertions(+), 8 deletions(-)
+
+diff --git a/third_party/grpc/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
+index 81026e5689b..8b597b4cf2f 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_linux.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_linux.cc
+@@ -40,7 +40,7 @@
+ #include <time.h>
+ #include <unistd.h>
+
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -70,7 +70,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
+ struct tm tm;
+ static __thread long tid = 0;
+- if (tid == 0) tid = gettid();
++ if (tid == 0) tid = sys_gettid();
+
+ timer = static_cast<time_t>(now.tv_sec);
+ final_slash = strrchr(args->file, '/');
+diff --git a/third_party/grpc/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
+index b6edc14ab6b..2f7c6ce3760 100644
+--- a/third_party/grpc/src/core/lib/gpr/log_posix.cc
++++ b/third_party/grpc/src/core/lib/gpr/log_posix.cc
+@@ -31,7 +31,7 @@
+ #include <string.h>
+ #include <time.h>
+
+-static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
++static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
+
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+ const char* format, ...) {
+@@ -86,7 +86,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+ char* prefix;
+ gpr_asprintf(&prefix, "%s%s.%09d %7" PRIdPTR " %s:%d]",
+ gpr_log_severity_string(args->severity), time_buffer,
+- (int)(now.tv_nsec), gettid(), display_file, args->line);
++ (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
+
+ fprintf(stderr, "%-70s %s\n", prefix, args->message);
+ gpr_free(prefix);
+diff --git a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
+index c2d80c08ddb..4a83cb6c215 100644
+--- a/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
++++ b/third_party/grpc/src/core/lib/iomgr/ev_epollex_linux.cc
+@@ -1077,7 +1077,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
+ }
+
+ #ifndef NDEBUG
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+ #endif
+
+ /* pollset->mu lock must be held by the caller before calling this.
+@@ -1097,7 +1097,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
+ #define WORKER_PTR (&worker)
+ #endif
+ #ifndef NDEBUG
+- WORKER_PTR->originator = gettid();
++ WORKER_PTR->originator = sys_gettid();
+ #endif
+ if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) {
+ gpr_log(GPR_INFO,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/src-deps.json b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/src-deps.json
new file mode 100644
index 000000000000..7cf939daa72b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/src-deps.json
@@ -0,0 +1,506 @@
+{
+ "0.16.2.zip": {
+ "name": "0.16.2.zip",
+ "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
+ "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
+ ]
+ },
+ "0.28.3.tar.gz": {
+ "name": "0.28.3.tar.gz",
+ "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
+ ]
+ },
+ "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip": {
+ "name": "0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+ ]
+ },
+ "441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip": {
+ "name": "441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "sha256": "a07fe5e75964361885db725039c2ba673f0ee0313d971ae4f50c9b18cd28b0b5",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
+ ]
+ },
+ "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+ "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz": {
+ "name": "8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
+ ]
+ },
+ "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
+ "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+ ]
+ },
+ "android_tools_pkg-0.12.tar.gz": {
+ "name": "android_tools_pkg-0.12.tar.gz",
+ "sha256": "96c4eef4d195dd95e43a4259cf5b82a1e34f67333439e91955bbdc0e1c8e7a31",
+ "urls": [
+ "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.12.tar.gz"
+ ]
+ },
+ "bazel_j2objc": {
+ "name": "bazel_j2objc",
+ "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+ "strip_prefix": "j2objc-2.5",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+ "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
+ ]
+ },
+ "bazel_skylib": {
+ "name": "bazel_skylib",
+ "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
+ "strip_prefix": "bazel-skylib-f83cb8dd6f5658bc574ccd873e25197055265d1c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
+ ]
+ },
+ "bazel_toolchains": {
+ "name": "bazel_toolchains",
+ "sha256": "d8c2f20deb2f6143bac792d210db1a4872102d81529fe0ea3476c1696addd7ff",
+ "strip_prefix": "bazel-toolchains-0.28.3",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/archive/0.28.3.tar.gz"
+ ]
+ },
+ "build_bazel_rules_nodejs": {
+ "name": "build_bazel_rules_nodejs",
+ "sha256": "9b72bb0aea72d7cbcfc82a01b1e25bf3d85f791e790ddec16c65e2d906382ee0",
+ "strip_prefix": "rules_nodejs-0.16.2",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip",
+ "https://github.com/bazelbuild/rules_nodejs/archive/0.16.2.zip"
+ ]
+ },
+ "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz": {
+ "name": "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+ "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+ "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
+ ]
+ },
+ "com_google_googletest": {
+ "name": "com_google_googletest",
+ "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
+ "strip_prefix": "googletest-release-1.10.0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
+ "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
+ ]
+ },
+ "coverage_output_generator-v2.0.zip": {
+ "name": "coverage_output_generator-v2.0.zip",
+ "sha256": "3a6951051272d51613ac4c77af6ce238a3db321bf06506fde1b8866eb18a89dd",
+ "urls": [
+ "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.0.zip"
+ ]
+ },
+ "desugar_jdk_libs": {
+ "name": "desugar_jdk_libs",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
+ "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz": {
+ "name": "f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "sha256": "ba5d15ca230efca96320085d8e4d58da826d1f81b444ef8afccd8b23e0799b52",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/f83cb8dd6f5658bc574ccd873e25197055265d1c.tar.gz"
+ ]
+ },
+ "io_bazel_rules_sass": {
+ "name": "io_bazel_rules_sass",
+ "sha256": "d868ce50d592ef4aad7dec4dd32ae68d2151261913450fac8390b3fd474bb898",
+ "strip_prefix": "rules_sass-8ccf4f1c351928b55d5dddf3672e3667f6978d60",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz",
+ "https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.tar.gz"
+ ]
+ },
+ "io_bazel_skydoc": {
+ "name": "io_bazel_skydoc",
+ "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
+ "strip_prefix": "skydoc-c7bbde2950769aac9a99364b0926230060a3ce04",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
+ "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
+ ]
+ },
+ "java_tools_javac11_darwin-v6.1.zip": {
+ "name": "java_tools_javac11_darwin-v6.1.zip",
+ "sha256": "f0c488dac18f18ab1a0d18bbd65288c7a128e90a24d9c16f65bd8243f79483a0",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v6.1/java_tools_javac11_darwin-v6.1.zip"
+ ]
+ },
+ "java_tools_javac11_linux-v6.1.zip": {
+ "name": "java_tools_javac11_linux-v6.1.zip",
+ "sha256": "12f7940ed0bc4c2e82238951cdf19b4179c7dcc361d16fe40fe4266538fb4ac6",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v6.1/java_tools_javac11_linux-v6.1.zip"
+ ]
+ },
+ "java_tools_javac11_windows-v6.1.zip": {
+ "name": "java_tools_javac11_windows-v6.1.zip",
+ "sha256": "e2deb2efff684de78787e0bdc7620f9672d13f04a12856d8e7f677369a8e286b",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v6.1/java_tools_javac11_windows-v6.1.zip"
+ ]
+ },
+ "java_tools_langtools_javac10": {
+ "name": "java_tools_langtools_javac10",
+ "sha256": "0e9c9ac5ef17869de3cb8c3497c4c0d31836ef7b63efe1690506f53783adb212",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk10_v2.zip"
+ ]
+ },
+ "java_tools_langtools_javac11": {
+ "name": "java_tools_langtools_javac11",
+ "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
+ ]
+ },
+ "java_tools_langtools_javac12": {
+ "name": "java_tools_langtools_javac12",
+ "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
+ ]
+ },
+ "java_tools_langtools_javac9": {
+ "name": "java_tools_langtools_javac9",
+ "sha256": "d94befcfb325a9a62aebc2052e631fde2322b4df5c82a19ed260b38ba12a0ad1",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk9_v2.zip"
+ ]
+ },
+ "jdk10-server-release-1804.tar.xz": {
+ "name": "jdk10-server-release-1804.tar.xz",
+ "sha256": "b7098b7aaf6ee1ffd4a2d0371a0be26c5a5c87f6aebbe46fe9a92c90583a84be",
+ "urls": [
+ "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk10-server-release-1804.tar.xz"
+ ]
+ },
+ "jdk9-server-release-1708.tar.xz": {
+ "name": "jdk9-server-release-1708.tar.xz",
+ "sha256": "72e7843902b0395e2d30e1e9ad2a5f05f36a4bc62529828bcbc698d54aec6022",
+ "urls": [
+ "https://mirror.bazel.build/openjdk.linaro.org/releases/jdk9-server-release-1708.tar.xz"
+ ]
+ },
+ "openjdk10_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk10_linux_archive",
+ "sha256": "b3c2d762091a615b0c1424ebbd05d75cc114da3bf4f25a0dec5c51ea7e84146f",
+ "strip_prefix": "zulu10.2+3-jdk10.0.1-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk11_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk11_linux_archive",
+ "sha256": "ddb0fd4526089cf1ce2db36282c282263f587a9e8be373fa02f511a12923cc48",
+ "strip_prefix": "zulu11.31.11-ca-jdk11.0.3-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.11-ca-jdk11.0.3/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk12_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk12_linux_archive",
+ "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
+ "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk9_linux_archive": {
+ "build_file_content": "java_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])",
+ "name": "openjdk9_linux_archive",
+ "sha256": "45f2dfbee93b91b1468cf81d843fc6d9a47fef1f831c0b7ceff4f1eb6e6851c8",
+ "strip_prefix": "zulu9.0.7.1-jdk9.0.7-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk_linux": {
+ "downloaded_file_path": "zulu-linux.tar.gz",
+ "name": "openjdk_linux",
+ "sha256": "460d8a4f0c0204160b48086e341b22943c9cca471b195340e75b38ae9eb33c1c",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209950.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64": {
+ "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
+ "name": "openjdk_linux_aarch64",
+ "sha256": "23c37c0c3a8fdcbc68e96e70ff5c5c020c14db76deaae9b547849afda4586e5e",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-allmodules-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_minimal": {
+ "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
+ "name": "openjdk_linux_aarch64_minimal",
+ "sha256": "7af2583fe5ef0a781d4a9dca0c0160d42e7db1305ec1b66f98aa44c91cc875df",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64-minimal-c82eb4878c7dc829455caeb915affe36c89df06f-1561630858.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_vanilla": {
+ "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
+ "name": "openjdk_linux_aarch64_vanilla",
+ "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
+ ]
+ },
+ "openjdk_linux_minimal": {
+ "downloaded_file_path": "zulu-linux-minimal.tar.gz",
+ "name": "openjdk_linux_minimal",
+ "sha256": "5123bc8dd21886761d1fd9ca0fb1898b3372d7243064a070ec81ca9c9d1a6791",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556011926.tar.gz"
+ ]
+ },
+ "openjdk_linux_vanilla": {
+ "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
+ "name": "openjdk_linux_vanilla",
+ "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk_macos": {
+ "downloaded_file_path": "zulu-macos.tar.gz",
+ "name": "openjdk_macos",
+ "sha256": "8fa61d85ca6f657d646fdb50cfc8634987f8f7d8a3250ed39fb7364647633252",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209951.tar.gz"
+ ]
+ },
+ "openjdk_macos_minimal": {
+ "downloaded_file_path": "zulu-macos-minimal.tar.gz",
+ "name": "openjdk_macos_minimal",
+ "sha256": "ac56e44db46fd56ac78b39b6823daed4faa74a2677ac340c7d217f863884ec0f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003114.tar.gz"
+ ]
+ },
+ "openjdk_macos_vanilla": {
+ "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
+ "name": "openjdk_macos_vanilla",
+ "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
+ ]
+ },
+ "openjdk_win": {
+ "downloaded_file_path": "zulu-win.zip",
+ "name": "openjdk_win",
+ "sha256": "e6ddb361309f8e84eb5fb5ad8b0f5cc031ba3679910139262c31efd8f7579d05",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-allmodules-90755145cb6e6418584d8603cd5fa9afbb30aecc-1549209972.zip"
+ ]
+ },
+ "openjdk_win_minimal": {
+ "downloaded_file_path": "zulu-win-minimal.zip",
+ "name": "openjdk_win_minimal",
+ "sha256": "8e5dada6e9ebcc9ce29b4d051449bb95d3ee1e620e166da862224bbf15211f8b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64-minimal-524ae2ca2a782c9f15e00f08bd35b3f8ceacbd7f-1556003136.zip"
+ ]
+ },
+ "openjdk_win_vanilla": {
+ "downloaded_file_path": "zulu-win-vanilla.zip",
+ "name": "openjdk_win_vanilla",
+ "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
+ ]
+ },
+ "platforms": {
+ "name": "platforms",
+ "sha256": "a07fe5e75964361885db725039c2ba673f0ee0313d971ae4f50c9b18cd28b0b5",
+ "strip_prefix": "platforms-441afe1bfdadd6236988e9cac159df6b5a9f5a98",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip",
+ "https://github.com/bazelbuild/platforms/archive/441afe1bfdadd6236988e9cac159df6b5a9f5a98.zip"
+ ]
+ },
+ "rules_cc": {
+ "name": "rules_cc",
+ "sha256": "36fa66d4d49debd71d05fba55c1353b522e8caef4a20f8080a3d17cdda001d89",
+ "strip_prefix": "rules_cc-0d5f3f2768c6ca2faca0079a997a97ce22997a0c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/0d5f3f2768c6ca2faca0079a997a97ce22997a0c.zip"
+ ]
+ },
+ "rules_java": {
+ "name": "rules_java",
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "rules_pkg": {
+ "name": "rules_pkg",
+ "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+ ]
+ },
+ "rules_pkg-0.2.0.tar.gz": {
+ "name": "rules_pkg-0.2.0.tar.gz",
+ "sha256": "5bdc04987af79bd27bc5b00fe30f59a858f77ffa0bd2d8143d5b31ad8b1bd71c",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/rules_pkg-0.2.0.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.0/rules_pkg-0.2.0.tar.gz"
+ ]
+ },
+ "rules_proto": {
+ "name": "rules_proto",
+ "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+ "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz": {
+ "name": "zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz",
+ "sha256": "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-linux_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz": {
+ "name": "zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz",
+ "sha256": "e669c9a897413d855b550b4e39d79614392e6fb96f494e8ef99a34297d9d85d3",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-macosx_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip": {
+ "name": "zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip",
+ "sha256": "c39e7700a8d41794d60985df5a20352435196e78ecbc6a2b30df7be8637bffd5",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu10.2+3-jdk10.0.1/zulu10.2+3-jdk10.0.1-win_x64-allmodules.zip"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz": {
+ "name": "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz",
+ "sha256": "232b1c3511f0d26e92582b7c3cc363be7ac633e371854ca2f2e9f2b50eb72a75",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz": {
+ "name": "zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz",
+ "sha256": "1edf366ee821e5db8e348152fcb337b28dfd6bf0f97943c270dcc6747cedb6cb",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz"
+ ]
+ },
+ "zulu11.2.3-jdk11.0.1-win_x64.zip": {
+ "name": "zulu11.2.3-jdk11.0.1-win_x64.zip",
+ "sha256": "8e1e2b8347de6746f3fd1538840dd643201533ab113abc4ed93678e342d28aa3",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-win_x64.zip"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz",
+ "sha256": "f3f44b6235508e87b760bf37a49e186cc1fa4e9cd28384c4dbf5a33991921e08",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip",
+ "sha256": "059f8e3484bf07b63a8f2820d5f528f473eff1befdb1896ee4f8ff06be3b8d8f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-macosx_x64.zip"
+ ]
+ },
+ "zulu11.29.3-ca-jdk11.0.2-win_x64.zip": {
+ "name": "zulu11.29.3-ca-jdk11.0.2-win_x64.zip",
+ "sha256": "e1f5b4ce1b9148140fae2fcfb8a96d1c9b7eac5b8df0e13fbcad9b8561284880",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.29.3-ca-jdk11.0.2/zulu11.29.3-ca-jdk11.0.2-win_x64.zip"
+ ]
+ },
+ "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz": {
+ "name": "zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz",
+ "sha256": "3b0d91611b1bdc4d409afcf9eab4f0e7f4ae09f88fc01bd9f2b48954882ae69b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.31.15-ca-jdk11.0.3/zulu11.31.15-ca-jdk11.0.3-linux_aarch64.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz": {
+ "name": "zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz",
+ "sha256": "f27cb933de4f9e7fe9a703486cf44c84bc8e9f138be0c270c9e5716a32367e87",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-linux_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz": {
+ "name": "zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz",
+ "sha256": "404e7058ff91f956612f47705efbee8e175a38b505fb1b52d8c1ea98718683de",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-macosx_x64-allmodules.tar.gz"
+ ]
+ },
+ "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip": {
+ "name": "zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip",
+ "sha256": "e738829017f107e7a7cd5069db979398ec3c3f03ef56122f89ba38e7374f63ed",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu-9.0.7.1-jdk9.0.7/zulu9.0.7.1-jdk9.0.7-win_x64-allmodules.zip"
+ ]
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
new file mode 100644
index 000000000000..0bfc9071d7e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -0,0 +1,584 @@
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
+, runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
+# this package (through the fixpoint glass)
+, bazel_self
+, lr, xe, zip, unzip, bash, writeCBin, coreutils
+, which, gawk, gnused, gnutar, gnugrep, gzip, findutils
+# updater
+, python27, python3, writeScript
+# Apple dependencies
+, cctools, libcxx, CoreFoundation, CoreServices, Foundation
+# Allow to independently override the jdks used to build and run respectively
+, buildJdk, runJdk
+, buildJdkName
+, runtimeShell
+# Downstream packages for tests
+, bazel-watcher
+# Always assume all markers valid (this is needed because we remove markers; they are non-deterministic).
+# Also, don't clean up environment variables (so that NIX_ environment variables are passed to compilers).
+, enableNixHacks ? false
+, gcc-unwrapped
+, autoPatchelfHook
+, file
+, substituteAll
+, writeTextFile
+}:
+
+let
+ version = "3.3.1";
+
+ src = fetchurl {
+ url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
+ sha256 = "0ir796kl8r9hpr3li26qsdy1z2lx2bv82zmk4a2s7q64clyg9wg0";
+ };
+
+ # Update with `eval $(nix-build -A bazel.updater)`,
+ # then add new dependencies from the dict in ./src-deps.json as required.
+ srcDeps = lib.attrsets.attrValues srcDepsSet;
+ srcDepsSet =
+ let
+ srcs = (builtins.fromJSON (builtins.readFile ./src-deps.json));
+ toFetchurl = d: lib.attrsets.nameValuePair d.name (fetchurl {
+ urls = d.urls;
+ sha256 = d.sha256;
+ });
+ in builtins.listToAttrs (map toFetchurl [
+ srcs.desugar_jdk_libs
+ srcs.io_bazel_skydoc
+ srcs.bazel_skylib
+ srcs.io_bazel_rules_sass
+ srcs.platforms
+ (if stdenv.hostPlatform.isDarwin
+ then srcs."java_tools_javac11_darwin-v8.0.zip"
+ else srcs."java_tools_javac11_linux-v8.0.zip")
+ srcs."coverage_output_generator-v2.1.zip"
+ srcs.build_bazel_rules_nodejs
+ srcs."android_tools_pkg-0.19.0rc1.tar.gz"
+ srcs."bazel-toolchains-3.1.0.tar.gz"
+ srcs.rules_pkg
+ srcs.rules_cc
+ srcs.rules_java
+ srcs.rules_proto
+ ]);
+
+ distDir = runCommand "bazel-deps" {} ''
+ mkdir -p $out
+ for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
+ '';
+
+ defaultShellPath = lib.makeBinPath
+ # Keep this list conservative. For more exotic tools, prefer to use
+ # @rules_nixpkgs to pull in tools from the nix repository. Example:
+ #
+ # WORKSPACE:
+ #
+ # nixpkgs_git_repository(
+ # name = "nixpkgs",
+ # revision = "def5124ec8367efdba95a99523dd06d918cb0ae8",
+ # )
+ #
+ # # This defines an external Bazel workspace.
+ # nixpkgs_package(
+ # name = "bison",
+ # repositories = { "nixpkgs": "@nixpkgs//:default.nix" },
+ # )
+ #
+ # some/BUILD.bazel:
+ #
+ # genrule(
+ # ...
+ # cmd = "$(location @bison//:bin/bison) -other -args",
+ # tools = [
+ # ...
+ # "@bison//:bin/bison",
+ # ],
+ # )
+ #
+ [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip file zip ];
+
+ # Java toolchain used for the build and tests
+ javaToolchain = "@bazel_tools//tools/jdk:toolchain_host${buildJdkName}";
+
+ platforms = lib.platforms.linux ++ lib.platforms.darwin;
+
+ # This repository is fetched by bazel at runtime
+ # however it contains prebuilt java binaries, with wrong interpreter
+ # and libraries path.
+ # We prefetch it, patch it, and override it in a global bazelrc.
+ system = if stdenv.hostPlatform.isDarwin then "darwin" else "linux";
+ arch = stdenv.hostPlatform.parsed.cpu.name;
+
+ remote_java_tools = stdenv.mkDerivation {
+ name = "remote_java_tools_${system}";
+
+ src = srcDepsSet."java_tools_javac11_${system}-v8.0.zip";
+
+ nativeBuildInputs = [ autoPatchelfHook unzip ];
+ buildInputs = [ gcc-unwrapped ];
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ mkdir $out;
+ '';
+
+ installPhase = ''
+ cp -Ra * $out/
+ touch $out/WORKSPACE
+ '';
+ };
+
+ bazelRC = writeTextFile {
+ name = "bazel-rc";
+ text = ''
+ build --override_repository=${remote_java_tools.name}=${remote_java_tools}
+ build --distdir=${distDir}
+ startup --server_javabase=${runJdk}
+
+ # load default location for the system wide configuration
+ try-import /etc/bazel.bazelrc
+ '';
+ };
+
+in
+stdenv.mkDerivation rec {
+ pname = "bazel";
+ inherit version;
+
+ meta = with lib; {
+ homepage = "https://github.com/bazelbuild/bazel/";
+ description = "Build tool that builds code quickly and reliably";
+ license = licenses.asl20;
+ maintainers = [ maintainers.mboes ];
+ inherit platforms;
+ };
+
+ inherit src;
+ sourceRoot = ".";
+
+ patches = [
+ ./python-shebang.patch
+
+ # On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
+ # This is breaking the build of any C target. This patch removes the last
+ # argument if it's found to be an empty string.
+ ../trim-last-argument-to-gcc-if-empty.patch
+
+ # --experimental_strict_action_env (which may one day become the default
+ # see bazelbuild/bazel#2574) hardcodes the default
+ # action environment to a non hermetic value (e.g. "/usr/local/bin").
+ # This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
+ # So we are replacing this bazel paths by defaultShellPath,
+ # improving hermeticity and making it work in nixos.
+ (substituteAll {
+ src = ../strict_action_env.patch;
+ strictActionEnvPatch = defaultShellPath;
+ })
+
+ # bazel reads its system bazelrc in /etc
+ # override this path to a builtin one
+ (substituteAll {
+ src = ../bazel_rc.patch;
+ bazelSystemBazelRCPath = bazelRC;
+ })
+ ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
+
+
+ # Additional tests that check bazel’s functionality. Execute
+ #
+ # nix-build . -A bazel.tests
+ #
+ # in the nixpkgs checkout root to exercise them locally.
+ passthru.tests =
+ let
+ runLocal = name: attrs: script:
+ let
+ attrs' = removeAttrs attrs [ "buildInputs" ];
+ buildInputs = [ python3 ] ++ (attrs.buildInputs or []);
+ in
+ runCommandCC name ({
+ inherit buildInputs;
+ preferLocalBuild = true;
+ meta.platforms = platforms;
+ } // attrs') script;
+
+ # bazel wants to extract itself into $install_dir/install every time it runs,
+ # so let’s do that only once.
+ extracted = bazelPkg:
+ let install_dir =
+ # `install_base` field printed by `bazel info`, minus the hash.
+ # yes, this path is kinda magic. Sorry.
+ "$HOME/.cache/bazel/_bazel_nixbld";
+ in runLocal "bazel-extracted-homedir" { passthru.install_dir = install_dir; } ''
+ export HOME=$(mktemp -d)
+ touch WORKSPACE # yeah, everything sucks
+ install_base="$(${bazelPkg}/bin/bazel info | grep install_base)"
+ # assert it’s actually below install_dir
+ [[ "$install_base" =~ ${install_dir} ]] \
+ || (echo "oh no! $install_base but we are \
+ trying to copy ${install_dir} to $out instead!"; exit 1)
+ cp -R ${install_dir} $out
+ '';
+
+ bazelTest = { name, bazelScript, workspaceDir, bazelPkg, buildInputs ? [] }:
+ let
+ be = extracted bazelPkg;
+ in runLocal name { inherit buildInputs; } (
+ # skip extraction caching on Darwin, because nobody knows how Darwin works
+ (lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ # set up home with pre-unpacked bazel
+ export HOME=$(mktemp -d)
+ mkdir -p ${be.install_dir}
+ cp -R ${be}/install ${be.install_dir}
+
+ # https://stackoverflow.com/questions/47775668/bazel-how-to-skip-corrupt-installation-on-centos6
+ # Bazel checks whether the mtime of the install dir files
+ # is >9 years in the future, otherwise it extracts itself again.
+ # see PosixFileMTime::IsUntampered in src/main/cpp/util
+ # What the hell bazel.
+ ${lr}/bin/lr -0 -U ${be.install_dir} | ${xe}/bin/xe -N0 -0 touch --date="9 years 6 months" {}
+ '')
+ +
+ ''
+ # Note https://github.com/bazelbuild/bazel/issues/5763#issuecomment-456374609
+ # about why to create a subdir for the workspace.
+ cp -r ${workspaceDir} wd && chmod u+w wd && cd wd
+
+ ${bazelScript}
+
+ touch $out
+ '');
+
+ bazelWithNixHacks = bazel_self.override { enableNixHacks = true; };
+
+ bazel-examples = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "examples";
+ rev = "5d8c8961a2516ebf875787df35e98cadd08d43dc";
+ sha256 = "03c1bwlq5bs3hg96v4g4pg2vqwhqq6w538h66rcpw02f83yy7fs8";
+ };
+
+ in (if !stdenv.hostPlatform.isDarwin then {
+ # `extracted` doesn’t work on darwin
+ shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+ } else {}) // {
+ bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
+ cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
+ protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
+ pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+
+ bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ cppWithNixHacks = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ javaWithNixHacks = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazelWithNixHacks; };
+ protobufWithNixHacks = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+ pythonBinPathWithNixHacks = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
+
+ # downstream packages using buildBazelPackage
+ # fixed-output hashes of the fetch phase need to be spot-checked manually
+ downstream = recurseIntoAttrs ({
+ inherit bazel-watcher;
+ }
+ # dm-sonnet is only packaged for linux
+ // (lib.optionalAttrs stdenv.isLinux {
+ # TODO(timokau) dm-sonnet is broken currently
+ # dm-sonnet-linux = python3.pkgs.dm-sonnet;
+ }));
+ };
+
+ # update the list of workspace dependencies
+ passthru.updater = writeScript "update-bazel-deps.sh" ''
+ #!${runtimeShell}
+ cat ${runCommand "bazel-deps.json" {} ''
+ ${unzip}/bin/unzip ${src} WORKSPACE
+ ${python3}/bin/python3 ${../update-srcDeps.py} ./WORKSPACE > $out
+ ''} > ${builtins.toString ./src-deps.json}
+ '';
+
+ # Necessary for the tests to pass on Darwin with sandbox enabled.
+ # Bazel starts a local server and needs to bind a local address.
+ __darwinAllowLocalNetworking = true;
+
+ # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
+ customBash = writeCBin "bash" ''
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+
+ extern char **environ;
+
+ int main(int argc, char *argv[]) {
+ char *path = getenv("PATH");
+ char *pathToAppend = "${defaultShellPath}";
+ char *newPath;
+ if (path != NULL) {
+ int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
+ newPath = malloc(length * sizeof(char));
+ snprintf(newPath, length, "%s:%s", path, pathToAppend);
+ } else {
+ newPath = pathToAppend;
+ }
+ setenv("PATH", newPath, 1);
+ execve("${bash}/bin/bash", argv, environ);
+ return 0;
+ }
+ '';
+
+ postPatch = let
+
+ darwinPatches = ''
+ bazelLinkFlags () {
+ eval set -- "$NIX_LDFLAGS"
+ local flag
+ for flag in "$@"; do
+ printf ' -Wl,%s' "$flag"
+ done
+ }
+
+ # Disable Bazel's Xcode toolchain detection which would configure compilers
+ # and linkers from Xcode instead of from PATH
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ # Explicitly configure gcov since we don't have it on Darwin, so autodetection fails
+ export GCOV=${coreutils}/bin/false
+
+ # Framework search paths aren't added by bintools hook
+ # https://github.com/NixOS/nixpkgs/pull/41914
+ export NIX_LDFLAGS+=" -F${CoreFoundation}/Library/Frameworks -F${CoreServices}/Library/Frameworks -F${Foundation}/Library/Frameworks"
+
+ # libcxx includes aren't added by libcxx hook
+ # https://github.com/NixOS/nixpkgs/pull/41589
+ export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -isystem ${libcxx}/include/c++/v1"
+
+ # don't use system installed Xcode to run clang, use Nix clang instead
+ sed -i -E "s;/usr/bin/xcrun (--sdk macosx )?clang;${stdenv.cc}/bin/clang $NIX_CFLAGS_COMPILE $(bazelLinkFlags) -framework CoreFoundation;g" \
+ scripts/bootstrap/compile.sh \
+ src/tools/xcode/realpath/BUILD \
+ src/tools/xcode/stdredirect/BUILD \
+ tools/osx/BUILD
+
+ # nixpkgs's libSystem cannot use pthread headers directly, must import GCD headers instead
+ sed -i -e "/#include <pthread\/spawn.h>/i #include <dispatch/dispatch.h>" src/main/cpp/blaze_util_darwin.cc
+
+ # clang installed from Xcode has a compatibility wrapper that forwards
+ # invocations of gcc to clang, but vanilla clang doesn't
+ sed -i -e 's;_find_generic(repository_ctx, "gcc", "CC", overriden_tools);_find_generic(repository_ctx, "clang", "CC", overriden_tools);g' tools/cpp/unix_cc_configure.bzl
+
+ sed -i -e 's;/usr/bin/libtool;${cctools}/bin/libtool;g' tools/cpp/unix_cc_configure.bzl
+ wrappers=( tools/cpp/osx_cc_wrapper.sh tools/cpp/osx_cc_wrapper.sh.tpl )
+ for wrapper in "''${wrappers[@]}"; do
+ sed -i -e "s,/usr/bin/install_name_tool,${cctools}/bin/install_name_tool,g" $wrapper
+ done
+ '';
+
+ genericPatches = ''
+ # Substitute j2objc and objc wrapper's python shebang to plain python path.
+ # These scripts explicitly depend on Python 2.7, hence we use python27.
+ # See also `postFixup` where python27 is added to $out/nix-support
+ substituteInPlace tools/j2objc/j2objc_header_map.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/j2objc/j2objc_wrapper.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+ substituteInPlace tools/objc/j2objc_dead_code_pruner.py --replace "$!/usr/bin/python2.7" "#!${python27}/bin/python"
+
+ # md5sum is part of coreutils
+ sed -i 's|/sbin/md5|md5sum|' \
+ src/BUILD
+
+ # replace initial value of pythonShebang variable in BazelPythonSemantics.java
+ substituteInPlace src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java \
+ --replace '"#!/usr/bin/env " + pythonExecutableName' "\"#!${python3}/bin/python\""
+
+ # substituteInPlace is rather slow, so prefilter the files with grep
+ grep -rlZ /bin src/main/java/com/google/devtools | while IFS="" read -r -d "" path; do
+ # If you add more replacements here, you must change the grep above!
+ # Only files containing /bin are taken into account.
+ # We default to python3 where possible. See also `postFixup` where
+ # python3 is added to $out/nix-support
+ substituteInPlace "$path" \
+ --replace /bin/bash ${customBash}/bin/bash \
+ --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+ --replace "/usr/bin/env python" ${python3}/bin/python \
+ --replace /usr/bin/env ${coreutils}/bin/env \
+ --replace /bin/true ${coreutils}/bin/true
+ done
+
+ # bazel test runner include references to /bin/bash
+ substituteInPlace tools/build_rules/test_rules.bzl \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ for i in $(find tools/cpp/ -type f)
+ do
+ substituteInPlace $i \
+ --replace /bin/bash ${customBash}/bin/bash
+ done
+
+ # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
+ substituteInPlace scripts/bootstrap/compile.sh \
+ --replace /bin/bash ${customBash}/bin/bash
+
+ # add nix environment vars to .bazelrc
+ cat >> .bazelrc <<EOF
+ # Limit the resources Bazel is allowed to use during the build to 1/2 the
+ # available RAM and 3/4 the available CPU cores. This should help avoid
+ # overwhelming the build machine.
+ build --local_ram_resources=HOST_RAM*.5
+ build --local_cpu_resources=HOST_CPUS*.75
+
+ build --distdir=${distDir}
+ fetch --distdir=${distDir}
+ build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
+ build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+ build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+ build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
+ build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
+ build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
+ build --host_javabase='@local_jdk//:jdk'
+ build --host_java_toolchain='${javaToolchain}'
+ EOF
+
+ # add the same environment vars to compile.sh
+ sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
+ -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
+ -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
+ -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
+ -i scripts/bootstrap/compile.sh
+
+ # This is necessary to avoid:
+ # "error: no visible @interface for 'NSDictionary' declares the selector
+ # 'initWithContentsOfURL:error:'"
+ # This can be removed when the apple_sdk is upgraded beyond 10.13+
+ sed -i '/initWithContentsOfURL:versionPlistUrl/ {
+ N
+ s/error:nil\];/\];/
+ }' tools/osx/xcode_locator.m
+
+ # append the PATH with defaultShellPath in tools/bash/runfiles/runfiles.bash
+ echo "PATH=\$PATH:${defaultShellPath}" >> runfiles.bash.tmp
+ cat tools/bash/runfiles/runfiles.bash >> runfiles.bash.tmp
+ mv runfiles.bash.tmp tools/bash/runfiles/runfiles.bash
+
+ patchShebangs .
+ '';
+ in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
+ + genericPatches;
+
+ buildInputs = [
+ buildJdk
+ python3
+ ];
+
+ # when a command can’t be found in a bazel build, you might also
+ # need to add it to `defaultShellPath`.
+ nativeBuildInputs = [
+ installShellFiles
+ zip
+ python3
+ unzip
+ makeWrapper
+ which
+ customBash
+ ] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
+
+ # Bazel makes extensive use of symlinks in the WORKSPACE.
+ # This causes problems with infinite symlinks if the build output is in the same location as the
+ # Bazel WORKSPACE. This is why before executing the build, the source code is moved into a
+ # subdirectory.
+ # Failing to do this causes "infinite symlink expansion detected"
+ preBuildPhases = ["preBuildPhase"];
+ preBuildPhase = ''
+ mkdir bazel_src
+ shopt -s dotglob extglob
+ mv !(bazel_src) bazel_src
+ '';
+
+ buildPhase = ''
+ # Increasing memory during compilation might be necessary.
+ # export BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m"
+ ./bazel_src/compile.sh
+ ./bazel_src/scripts/generate_bash_completion.sh \
+ --bazel=./bazel_src/output/bazel \
+ --output=./bazel_src/output/bazel-complete.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-header.bash \
+ --prepend=./bazel_src/scripts/bazel-complete-template.bash
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # official wrapper scripts that searches for $WORKSPACE_ROOT/tools/bazel
+ # if it can’t find something in tools, it calls $out/bin/bazel-{version}-{os_arch}
+ # The binary _must_ exist with this naming if your project contains a .bazelversion
+ # file.
+ cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+ mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
+
+ # shell completion files
+ installShellCompletion --bash \
+ --name bazel.bash \
+ ./bazel_src/output/bazel-complete.bash
+ installShellCompletion --zsh \
+ --name _bazel \
+ ./bazel_src/scripts/zsh_completion/_bazel
+ installShellCompletion --fish \
+ --name bazel.fish \
+ ./bazel_src/scripts/fish/completions/bazel.fish
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ export TEST_TMPDIR=$(pwd)
+
+ hello_test () {
+ $out/bin/bazel test --distdir=${distDir} \
+ --test_output=errors \
+ --java_toolchain='${javaToolchain}' \
+ examples/cpp:hello-success_test \
+ examples/java-native/src/test/java/com/example/myproject:hello
+ }
+
+ cd ./bazel_src
+
+ # test whether $WORKSPACE_ROOT/tools/bazel works
+
+ mkdir -p tools
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exit 1
+ EOF
+ chmod +x tools/bazel
+
+ # first call should fail if tools/bazel is used
+ ! hello_test
+
+ cat > tools/bazel <<"EOF"
+ #!${runtimeShell} -e
+ exec "$BAZEL_REAL" "$@"
+ EOF
+
+ # second call succeeds because it defers to $out/bin/bazel-{version}-{os_arch}
+ hello_test
+ '';
+
+ # Save paths to hardcoded dependencies so Nix can detect them.
+ postFixup = ''
+ mkdir -p $out/nix-support
+ echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
+ # The templates get tar’d up into a .jar,
+ # so nix can’t detect python is needed in the runtime closure
+ # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+ # default to using python3. Therefore, both python27 and python3 are
+ # runtime dependencies.
+ echo "${python27}" >> $out/nix-support/depends
+ echo "${python3}" >> $out/nix-support/depends
+ '' + lib.optionalString stdenv.isDarwin ''
+ echo "${cctools}" >> $out/nix-support/depends
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
new file mode 100644
index 000000000000..75547264fcc8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/python-shebang.patch
@@ -0,0 +1,20 @@
+--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java 2020-05-25 14:46:01.608403087 +0200
++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonSemantics.java 2020-05-25 14:50:52.881398320 +0200
+@@ -238,14 +238,15 @@
+ // TODO(#8685): Remove this special-case handling as part of making the proper shebang a
+ // property of the Python toolchain configuration.
+ String pythonExecutableName = OS.getCurrent() == OS.OPENBSD ? "python3" : "python";
++ String pythonShebang = "#!/usr/bin/env " + pythonExecutableName;
+ ruleContext.registerAction(
+ new SpawnAction.Builder()
+ .addInput(zipFile)
+ .addOutput(executable)
+ .setShellCommand(
+ shExecutable,
+- "echo '#!/usr/bin/env "
+- + pythonExecutableName
++ "echo '"
++ + pythonShebang
+ + "' | cat - "
+ + zipFile.getExecPathString()
+ + " > "
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
new file mode 100644
index 000000000000..4007a77b0652
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
@@ -0,0 +1,781 @@
+{
+ "1.25.0.zip": {
+ "name": "1.25.0.zip",
+ "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+ "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+ ]
+ },
+ "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": {
+ "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+ "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+ "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
+ ]
+ },
+ "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz": {
+ "name": "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+ "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+ ]
+ },
+ "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
+ "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+ "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+ "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+ ]
+ },
+ "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip": {
+ "name": "7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip": {
+ "name": "8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+ "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+ ]
+ },
+ "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz": {
+ "name": "97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+ ]
+ },
+ "android_tools_for_testing": {
+ "name": "android_tools_for_testing",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
+ "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
+ },
+ "android_tools_pkg-0.19.0rc1.tar.gz": {
+ "name": "android_tools_pkg-0.19.0rc1.tar.gz",
+ "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
+ "urls": [
+ "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
+ ]
+ },
+ "bazel-toolchains-3.1.0.tar.gz": {
+ "name": "bazel-toolchains-3.1.0.tar.gz",
+ "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+ ]
+ },
+ "bazel_j2objc": {
+ "name": "bazel_j2objc",
+ "sha256": "8d3403b5b7db57e347c943d214577f6879e5b175c2b59b7e075c0b6453330e9b",
+ "strip_prefix": "j2objc-2.5",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip",
+ "https://github.com/google/j2objc/releases/download/2.5/j2objc-2.5.zip"
+ ]
+ },
+ "bazel_skylib": {
+ "name": "bazel_skylib",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
+ "strip_prefix": "bazel-skylib-2d4c9528e0f453b5950eeaeac11d8d09f5a504d4",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
+ "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
+ ]
+ },
+ "bazel_toolchains": {
+ "name": "bazel_toolchains",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+ "strip_prefix": "bazel-toolchains-3.1.0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
+ ]
+ },
+ "bazel_website": {
+ "build_file_content": "\nexports_files([\"_sass/style.scss\"])\n",
+ "name": "bazel_website",
+ "sha256": "a5f531dd1d62e6947dcfc279656ffc2fdf6f447c163914c5eabf7961b4cb6eb4",
+ "strip_prefix": "bazel-website-c174fa288aa079b68416d2ce2cc97268fa172f42",
+ "urls": [
+ "https://github.com/bazelbuild/bazel-website/archive/c174fa288aa079b68416d2ce2cc97268fa172f42.tar.gz"
+ ]
+ },
+ "build_bazel_rules_nodejs": {
+ "name": "build_bazel_rules_nodejs",
+ "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+ "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+ ]
+ },
+ "com_google_googletest": {
+ "name": "com_google_googletest",
+ "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
+ "strip_prefix": "googletest-release-1.10.0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/googletest/archive/release-1.10.0.tar.gz",
+ "https://github.com/google/googletest/archive/release-1.10.0.tar.gz"
+ ]
+ },
+ "com_google_protobuf": {
+ "name": "com_google_protobuf",
+ "patch_args": [
+ "-p1"
+ ],
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "patches": [
+ "//third_party/protobuf:3.11.3.patch"
+ ],
+ "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+ "strip_prefix": "protobuf-3.11.3",
+ "urls": [
+ "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+ "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+ ]
+ },
+ "coverage_output_generator-v2.1.zip": {
+ "name": "coverage_output_generator-v2.1.zip",
+ "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+ "urls": [
+ "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+ ]
+ },
+ "desugar_jdk_libs": {
+ "name": "desugar_jdk_libs",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "strip_prefix": "desugar_jdk_libs-e0b0291b2c51fbe5a7cfa14473a1ae850f94f021",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip": {
+ "name": "e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "sha256": "fe2e04f91ce8c59d49d91b8102edc6627c6fa2906c1b0e7346f01419ec4f419d",
+ "urls": [
+ "https://mirror.bazel.build/github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip",
+ "https://github.com/google/desugar_jdk_libs/archive/e0b0291b2c51fbe5a7cfa14473a1ae850f94f021.zip"
+ ]
+ },
+ "io_bazel_rules_sass": {
+ "name": "io_bazel_rules_sass",
+ "sha256": "c78be58f5e0a29a04686b628cf54faaee0094322ae0ac99da5a8a8afca59a647",
+ "strip_prefix": "rules_sass-1.25.0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_sass/archive/1.25.0.zip",
+ "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
+ ]
+ },
+ "io_bazel_skydoc": {
+ "name": "io_bazel_skydoc",
+ "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+ "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+ "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
+ ]
+ },
+ "java_tools_javac11_darwin-v8.0.zip": {
+ "name": "java_tools_javac11_darwin-v8.0.zip",
+ "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+ ]
+ },
+ "java_tools_javac11_linux-v8.0.zip": {
+ "name": "java_tools_javac11_linux-v8.0.zip",
+ "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+ ]
+ },
+ "java_tools_javac11_windows-v8.0.zip": {
+ "name": "java_tools_javac11_windows-v8.0.zip",
+ "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+ ]
+ },
+ "java_tools_langtools_javac11": {
+ "name": "java_tools_langtools_javac11",
+ "sha256": "cf0814fa002ef3d794582bb086516d8c9ed0958f83f19799cdb08949019fe4c7",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk11_v2.zip"
+ ]
+ },
+ "java_tools_langtools_javac12": {
+ "name": "java_tools_langtools_javac12",
+ "sha256": "99b107105165a91df82cd7cf82a8efb930d803fb7de1663cf7f780142104cd14",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/jdk_langtools/langtools_jdk12.zip"
+ ]
+ },
+ "openjdk11_darwin_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk11_darwin_archive",
+ "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+ ]
+ },
+ "openjdk11_linux_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk11_linux_archive",
+ "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk11_windows_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk11_windows_archive",
+ "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+ ]
+ },
+ "openjdk12_darwin_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk12_darwin_archive",
+ "sha256": "67ca9d285056132ebb19fa237a14affda52132142e1171fe1c20e18974b3b8a5",
+ "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-macosx_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-macosx_x64.tar.gz"
+ ]
+ },
+ "openjdk12_linux_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk12_linux_archive",
+ "sha256": "529c99841d69e11a85aea967ccfb9d0fd40b98c5b68dbe1d059002655e0a9c13",
+ "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk12_windows_archive": {
+ "build_file_content": "\njava_runtime(name = 'runtime', srcs = glob(['**']), visibility = ['//visibility:public'])\nexports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])\n",
+ "name": "openjdk12_windows_archive",
+ "sha256": "cf28404c23c3aa1115363ba6e796c30580a768e1d7d6681a7d053e516008e00d",
+ "strip_prefix": "zulu12.2.3-ca-jdk12.0.1-win_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu12.2.3-ca-jdk12.0.1/zulu12.2.3-ca-jdk12.0.1-win_x64.zip"
+ ]
+ },
+ "openjdk_linux": {
+ "downloaded_file_path": "zulu-linux.tar.gz",
+ "name": "openjdk_linux",
+ "sha256": "65bfe4e0ffa74a680ee4410db46b17e30cd9397b664a92a886599fe1f3530969",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-linux_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689070.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64": {
+ "downloaded_file_path": "zulu-linux-aarch64.tar.gz",
+ "name": "openjdk_linux_aarch64",
+ "sha256": "6b245793087300db3ee82ab0d165614f193a73a60f2f011e347756c1e6ca5bac",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_minimal": {
+ "downloaded_file_path": "zulu-linux-aarch64-minimal.tar.gz",
+ "name": "openjdk_linux_aarch64_minimal",
+ "sha256": "06f6520a877704c77614bcfc4f846cc7cbcbf5eaad149bf7f19f4f16e285c9de",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581690750.tar.gz"
+ ]
+ },
+ "openjdk_linux_aarch64_vanilla": {
+ "downloaded_file_path": "zulu-linux-aarch64-vanilla.tar.gz",
+ "name": "openjdk_linux_aarch64_vanilla",
+ "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+ ]
+ },
+ "openjdk_linux_minimal": {
+ "downloaded_file_path": "zulu-linux-minimal.tar.gz",
+ "name": "openjdk_linux_minimal",
+ "sha256": "91f7d52f695c681d4e21499b4319d548aadef249a6b3053e306308992e1e29ae",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
+ ]
+ },
+ "openjdk_linux_ppc64le_vanilla": {
+ "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
+ "name": "openjdk_linux_ppc64le_vanilla",
+ "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+ "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+ ]
+ },
+ "openjdk_linux_vanilla": {
+ "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
+ "name": "openjdk_linux_vanilla",
+ "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+ ]
+ },
+ "openjdk_macos": {
+ "downloaded_file_path": "zulu-macos.tar.gz",
+ "name": "openjdk_macos",
+ "sha256": "8e283cfd23c7555be8e17295ed76eb8f00324c88ab904b8de37bbe08f90e569b",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689066.tar.gz"
+ ]
+ },
+ "openjdk_macos_minimal": {
+ "downloaded_file_path": "zulu-macos-minimal.tar.gz",
+ "name": "openjdk_macos_minimal",
+ "sha256": "1bacb1c07035d4066d79f0b65b4ea0ebd1954f3662bdfe3618da382ac8fd23a6",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689063.tar.gz"
+ ]
+ },
+ "openjdk_macos_vanilla": {
+ "downloaded_file_path": "zulu-macos-vanilla.tar.gz",
+ "name": "openjdk_macos_vanilla",
+ "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+ ]
+ },
+ "openjdk_win": {
+ "downloaded_file_path": "zulu-win.zip",
+ "name": "openjdk_win",
+ "sha256": "8e1604b3a27dcf639bc6d1a73103f1211848139e4cceb081d0a74a99e1e6f995",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-allmodules-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+ ]
+ },
+ "openjdk_win_minimal": {
+ "downloaded_file_path": "zulu-win-minimal.zip",
+ "name": "openjdk_win_minimal",
+ "sha256": "b90a713c9c2d9ea23cad44d2c2dfcc9af22faba9bde55dedc1c3bb9f556ac1ae",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689080.zip"
+ ]
+ },
+ "openjdk_win_vanilla": {
+ "downloaded_file_path": "zulu-win-vanilla.zip",
+ "name": "openjdk_win_vanilla",
+ "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+ ]
+ },
+ "platforms": {
+ "name": "platforms",
+ "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
+ "strip_prefix": "platforms-46993efdd33b73649796c5fc5c9efb193ae19d51",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
+ "https://github.com/bazelbuild/platforms/archive/46993efdd33b73649796c5fc5c9efb193ae19d51.zip"
+ ]
+ },
+ "remote_coverage_tools_for_testing": {
+ "name": "remote_coverage_tools_for_testing",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "96ac6bc9b9fbc67b532bcae562da1642409791e6a4b8e522f04946ee5cc3ff8e",
+ "urls": [
+ "https://mirror.bazel.build/bazel_coverage_output_generator/releases/coverage_output_generator-v2.1.zip"
+ ]
+ },
+ "remote_java_tools_darwin_for_testing": {
+ "name": "remote_java_tools_darwin_for_testing",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_darwin-v8.0.zip"
+ ]
+ },
+ "remote_java_tools_javac11_test_darwin": {
+ "name": "remote_java_tools_javac11_test_darwin",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "e0291e8956ac295143da4a673ca50727f7376665ee82b649a4ee810b64ff76c1",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_darwin-v8.0.zip"
+ ]
+ },
+ "remote_java_tools_javac11_test_linux": {
+ "name": "remote_java_tools_javac11_test_linux",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip"
+ ]
+ },
+ "remote_java_tools_javac11_test_windows": {
+ "name": "remote_java_tools_javac11_test_windows",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip"
+ ]
+ },
+ "remote_java_tools_javac12_test_darwin": {
+ "name": "remote_java_tools_javac12_test_darwin",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "54df966e7583bafe659e39b4103a4ce934201d969de638d071ada07d8e0c1a3a",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_darwin-v3.0.zip"
+ ]
+ },
+ "remote_java_tools_javac12_test_linux": {
+ "name": "remote_java_tools_javac12_test_linux",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "3997ee9a57b095748f1c0d084839fab2fbc72504aeb7b37b1f71c31738d330e3",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_linux-v3.0.zip"
+ ]
+ },
+ "remote_java_tools_javac12_test_windows": {
+ "name": "remote_java_tools_javac12_test_windows",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "cfad1718dad1fed12816748eed27ab30b9ea1268c8ce9940acf3b5b7d82d483d",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac12/v3.0/java_tools_javac12_windows-v3.0.zip"
+ ]
+ },
+ "remote_java_tools_linux_for_testing": {
+ "name": "remote_java_tools_linux_for_testing",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "c24aef916cc5a8e9f6d53db1f93c54fe5790a58996a1099592e1dfe992acc81e",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_linux-v8.0.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_linux-v8.0.zip"
+ ]
+ },
+ "remote_java_tools_windows_for_testing": {
+ "name": "remote_java_tools_windows_for_testing",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "444c391977e50af4e10549a28d021069d2ca7745a0e7b9b968a7b153fe3ea430",
+ "urls": [
+ "https://mirror.bazel.build/bazel_java_tools/releases/javac11/v8.0/java_tools_javac11_windows-v8.0.zip",
+ "https://github.com/bazelbuild/java_tools/releases/download/javac11_v8.0/java_tools_javac11_windows-v8.0.zip"
+ ]
+ },
+ "remotejdk11_linux_aarch64_for_testing": {
+ "build_file": "@local_jdk//:BUILD.bazel",
+ "name": "remotejdk11_linux_aarch64_for_testing",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+ "strip_prefix": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+ ]
+ },
+ "remotejdk11_linux_for_testing": {
+ "build_file": "@local_jdk//:BUILD.bazel",
+ "name": "remotejdk11_linux_for_testing",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-linux_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+ ]
+ },
+ "remotejdk11_linux_ppc64le_for_testing": {
+ "build_file": "@local_jdk//:BUILD.bazel",
+ "name": "remotejdk11_linux_ppc64le_for_testing",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+ "strip_prefix": "jdk-11.0.7+10",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+ "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+ ]
+ },
+ "remotejdk11_macos_for_testing": {
+ "build_file": "@local_jdk//:BUILD.bazel",
+ "name": "remotejdk11_macos_for_testing",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-macosx_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+ ]
+ },
+ "remotejdk11_win_for_testing": {
+ "build_file": "@local_jdk//:BUILD.bazel",
+ "name": "remotejdk11_win_for_testing",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+ "strip_prefix": "zulu11.37.17-ca-jdk11.0.6-win_x64",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+ ]
+ },
+ "rules_cc": {
+ "name": "rules_cc",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "1d4dbbd1e1e9b57d40bb0ade51c9e882da7658d5bfbf22bbd15b68e7879d761f",
+ "strip_prefix": "rules_cc-8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip",
+ "https://github.com/bazelbuild/rules_cc/archive/8bd6cd75d03c01bb82561a96d9c1f9f7157b13d0.zip"
+ ]
+ },
+ "rules_java": {
+ "name": "rules_java",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "bc81f1ba47ef5cc68ad32225c3d0e70b8c6f6077663835438da8d5733f917598",
+ "strip_prefix": "rules_java-7cf3cefd652008d0a64a419c34c13bdca6c8f178",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip",
+ "https://github.com/bazelbuild/rules_java/archive/7cf3cefd652008d0a64a419c34c13bdca6c8f178.zip"
+ ]
+ },
+ "rules_nodejs-1.3.0.tar.gz": {
+ "name": "rules_nodejs-1.3.0.tar.gz",
+ "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz",
+ "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
+ ]
+ },
+ "rules_pkg": {
+ "name": "rules_pkg",
+ "patch_cmds": [
+ "test -f BUILD && chmod u+w BUILD || true",
+ "echo >> BUILD",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+ ]
+ },
+ "rules_pkg-0.2.4.tar.gz": {
+ "name": "rules_pkg-0.2.4.tar.gz",
+ "sha256": "4ba8f4ab0ff85f2484287ab06c0d871dcb31cc54d439457d28fd4ae14b18450a",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz",
+ "https://github.com/bazelbuild/rules_pkg/releases/download/0.2.4/rules_pkg-0.2.4.tar.gz"
+ ]
+ },
+ "rules_proto": {
+ "name": "rules_proto",
+ "patch_cmds": [
+ "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+ "echo >> BUILD.bazel",
+ "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+ ],
+ "patch_cmds_win": [
+ "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+ ],
+ "sha256": "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",
+ "strip_prefix": "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",
+ "urls": [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",
+ "https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz"
+ ]
+ },
+ "v3.11.3.tar.gz": {
+ "name": "v3.11.3.tar.gz",
+ "sha256": "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
+ "urls": [
+ "https://mirror.bazel.build/github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz",
+ "https://github.com/protocolbuffers/protobuf/archive/v3.11.3.tar.gz"
+ ]
+ },
+ "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz": {
+ "name": "zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
+ "sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
+ ]
+ },
+ "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz": {
+ "name": "zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz",
+ "sha256": "e1fe56769f32e2aaac95e0a8f86b5a323da5af3a3b4bba73f3086391a6cc056f",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-macosx_x64.tar.gz"
+ ]
+ },
+ "zulu11.37.17-ca-jdk11.0.6-win_x64.zip": {
+ "name": "zulu11.37.17-ca-jdk11.0.6-win_x64.zip",
+ "sha256": "a9695617b8374bfa171f166951214965b1d1d08f43218db9a2a780b71c665c18",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-win_x64.zip"
+ ]
+ },
+ "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz": {
+ "name": "zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz",
+ "sha256": "a452f1b9682d9f83c1c14e54d1446e1c51b5173a3a05dcb013d380f9508562e4",
+ "urls": [
+ "https://mirror.bazel.build/openjdk/azul-zulu11.37.48-ca-jdk11.0.6/zulu11.37.48-ca-jdk11.0.6-linux_aarch64.tar.gz"
+ ]
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_rc.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_rc.patch
new file mode 100644
index 000000000000..a599ac3ec723
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_rc.patch
@@ -0,0 +1,13 @@
+diff --git a/src/main/cpp/option_processor.cc b/src/main/cpp/option_processor.cc
+index 8f8f15685f..a7ae52d1e4 100644
+--- a/src/main/cpp/option_processor.cc
++++ b/src/main/cpp/option_processor.cc
+@@ -56,7 +56,7 @@ OptionProcessor::OptionProcessor(
+ : workspace_layout_(workspace_layout),
+ startup_options_(std::move(default_startup_options)),
+ parse_options_called_(false),
+- system_bazelrc_path_(BAZEL_SYSTEM_BAZELRC_PATH) {}
++ system_bazelrc_path_("@bazelSystemBazelRCPath@") {}
+
+ OptionProcessor::OptionProcessor(
+ const WorkspaceLayout* workspace_layout,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
new file mode 100644
index 000000000000..43a70c6a765d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "bazel-buildtools";
+ version = "3.3.0";
+
+ goPackagePath = "github.com/bazelbuild/buildtools";
+
+ src = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "buildtools";
+ rev = version;
+ sha256 = "0g411gjbm02qd5b50iy6kk81kx2n5zw5x1m6i6g7nrmh38p3pn9k";
+ };
+
+ goDeps = ./deps.nix;
+
+ excludedPackages = [ "generatetables" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.buildVersion=${version} -X main.buildScmRevision=${src.rev}" ];
+
+ meta = with stdenv.lib; {
+ description = "Tools for working with Google's bazel buildtool. Includes buildifier, buildozer, and unused_deps";
+ homepage = "https://github.com/bazelbuild/buildtools";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ elasticdog uri-canva marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/deps.nix
new file mode 100644
index 000000000000..a64f96d2c072
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "84668698ea25b64748563aa20726db66a6b8d299";
+ sha256 = "1gkd1942vk9n8kfzdwy1iil6wgvlwjq7a3y5jc49ck4lz9rhmgkq";
+ };
+ }
+ {
+ goPackagePath = "go.starlark.net";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/starlark-go";
+ rev = "6677ee5c7211380ec7e6a1b50dc45287e40ca9e1";
+ sha256 = "1dl8q1lwvmm38w2lzfwray2djdcq40z89yy6vzy387w0xrax0jj0";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
new file mode 100644
index 000000000000..f4e03abdbc94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/cpp-test.nix
@@ -0,0 +1,51 @@
+{
+ bazel
+, bazelTest
+, bazel-examples
+, gccStdenv
+, lib
+, runLocal
+, runtimeShell
+, writeScript
+, writeText
+, distDir
+}:
+
+let
+
+ toolsBazel = writeScript "bazel" ''
+ #! ${runtimeShell}
+
+ export CXX='${gccStdenv.cc}/bin/g++'
+ export LD='${gccStdenv.cc}/bin/ld'
+ export CC='${gccStdenv.cc}/bin/gcc'
+
+ # XXX: hack for macosX, this flags disable bazel usage of xcode
+ # See: https://github.com/bazelbuild/bazel/issues/4231
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ exec "$BAZEL_REAL" "$@"
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} (''
+ cp -r ${bazel-examples}/cpp-tutorial/stage3 $out
+ find $out -type d -exec chmod 755 {} \;
+ ''
+ + (lib.optionalString gccStdenv.isDarwin ''
+ mkdir $out/tools
+ cp ${toolsBazel} $out/tools/bazel
+ ''));
+
+ testBazel = bazelTest {
+ name = "bazel-test-cpp";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ bazelScript = ''
+ ${bazel}/bin/bazel \
+ build --verbose_failures \
+ --distdir=${distDir} \
+ //...
+ '';
+ };
+
+in testBazel
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix
new file mode 100644
index 000000000000..30b957eb5e30
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/java-test.nix
@@ -0,0 +1,58 @@
+{
+ bazel
+, bazelTest
+, bazel-examples
+, gccStdenv
+, lib
+, openjdk8
+, runLocal
+, runtimeShell
+, writeScript
+, writeText
+, distDir
+}:
+
+let
+
+ toolsBazel = writeScript "bazel" ''
+ #! ${runtimeShell}
+
+ export CXX='${gccStdenv.cc}/bin/g++'
+ export LD='${gccStdenv.cc}/bin/ld'
+ export CC='${gccStdenv.cc}/bin/gcc'
+
+ # XXX: hack for macosX, this flags disable bazel usage of xcode
+ # See: https://github.com/bazelbuild/bazel/issues/4231
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ exec "$BAZEL_REAL" "$@"
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} (''
+ cp -r ${bazel-examples}/java-tutorial $out
+ find $out -type d -exec chmod 755 {} \;
+ ''
+ + (lib.optionalString gccStdenv.isDarwin ''
+ mkdir $out/tools
+ cp ${toolsBazel} $out/tools/bazel
+ ''));
+
+ testBazel = bazelTest {
+ name = "bazel-test-cpp";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ buildInputs = [ openjdk8 ];
+ bazelScript = ''
+ ${bazel}/bin/bazel \
+ run \
+ --distdir=${distDir} \
+ --host_javabase='@local_jdk//:jdk' \
+ --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
+ --javabase='@local_jdk//:jdk' \
+ --verbose_failures \
+ //:ProjectRunner
+ '';
+ };
+
+in testBazel
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/nix-hacks.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/nix-hacks.patch
new file mode 100644
index 000000000000..95f07646802e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/nix-hacks.patch
@@ -0,0 +1,43 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
+index 8e772005cd..6ffa1c919c 100644
+--- a/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
++++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java
+@@ -432,25 +432,7 @@ public final class RepositoryDelegatorFunction implements SkyFunction {
+ String content;
+ try {
+ content = FileSystemUtils.readContent(markerPath, StandardCharsets.UTF_8);
+- String markerRuleKey = readMarkerFile(content, markerData);
+- boolean verified = false;
+- if (Preconditions.checkNotNull(ruleKey).equals(markerRuleKey)
+- && Objects.equals(
+- markerData.get(MANAGED_DIRECTORIES_MARKER),
+- this.markerData.get(MANAGED_DIRECTORIES_MARKER))) {
+- verified = handler.verifyMarkerData(rule, markerData, env);
+- if (env.valuesMissing()) {
+- return null;
+- }
+- }
+-
+- if (verified) {
+- return new Fingerprint().addString(content).digestAndReset();
+- } else {
+- // So that we are in a consistent state if something happens while fetching the repository
+- markerPath.delete();
+- return null;
+- }
++ return new Fingerprint().addString(content).digestAndReset();
+ } catch (IOException e) {
+ throw new RepositoryFunctionException(e, Transience.TRANSIENT);
+ }
+diff --git a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
+index c282d57ab6..f9b0c08627 100644
+--- a/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
++++ b/src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java
+@@ -146,7 +146,6 @@ public class JavaSubprocessFactory implements SubprocessFactory {
+ ProcessBuilder builder = new ProcessBuilder();
+ builder.command(params.getArgv());
+ if (params.getEnv() != null) {
+- builder.environment().clear();
+ builder.environment().putAll(params.getEnv());
+ }
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
new file mode 100644
index 000000000000..0784de4cfd39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
@@ -0,0 +1,154 @@
+{
+ bazel
+, bazelTest
+, fetchFromGitHub
+, fetchurl
+, gccStdenv
+, lib
+, openjdk8
+, runLocal
+, runtimeShell
+, writeScript
+, writeText
+, distDir
+}:
+
+let
+ com_google_protobuf = fetchFromGitHub {
+ owner = "protocolbuffers";
+ repo = "protobuf";
+ rev = "v3.7.0";
+ sha256 = "0nlxif4cajqllsj2vdh7zp14ag48fb8lsa64zmq8625q9m2lcmdh";
+ };
+
+ bazel_skylib = fetchFromGitHub {
+ owner = "bazelbuild";
+ repo = "bazel-skylib";
+ rev = "f83cb8dd6f5658bc574ccd873e25197055265d1c";
+ sha256 = "091fb0ky0956wgv8gghy9ay3yfx6497mb72qvibf0y9dllmxyn9l";
+ };
+
+ net_zlib = fetchurl rec {
+ url = "https://zlib.net/zlib-1.2.11.tar.gz";
+ sha256 = "c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1";
+
+ passthru.sha256 = sha256;
+ };
+
+ WORKSPACE = writeText "WORKSPACE" ''
+ workspace(name = "our_workspace")
+
+ load("//:proto-support.bzl", "protobuf_deps")
+ protobuf_deps()
+ '';
+
+ protoSupport = writeText "proto-support.bzl" ''
+ """Load dependencies needed to compile the protobuf library as a 3rd-party consumer."""
+
+ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+ def protobuf_deps():
+ """Loads common dependencies needed to compile the protobuf library."""
+
+ if "zlib" not in native.existing_rules():
+ # proto_library, cc_proto_library, and java_proto_library rules implicitly
+ # depend on @com_google_protobuf for protoc and proto runtimes.
+ # This statement defines the @com_google_protobuf repo.
+ native.local_repository(
+ name = "com_google_protobuf",
+ path = "${com_google_protobuf}",
+ )
+ native.local_repository(
+ name = "bazel_skylib",
+ path = "${bazel_skylib}",
+ )
+
+ native.bind(
+ name = "zlib",
+ actual = "@net_zlib//:zlib",
+ )
+ http_archive(
+ name = "net_zlib",
+ build_file = "@com_google_protobuf//:third_party/zlib.BUILD",
+ sha256 = "${net_zlib.sha256}",
+ strip_prefix = "zlib-1.2.11",
+ urls = ["file://${net_zlib}"],
+ )
+ '';
+
+ personProto = writeText "person.proto" ''
+ syntax = "proto3";
+
+ package person;
+
+ message Person {
+ string name = 1;
+ int32 id = 2;
+ string email = 3;
+ }
+ '';
+
+ personBUILD = writeText "BUILD" ''
+ proto_library(
+ name = "person_proto",
+ srcs = ["person.proto"],
+ visibility = ["//visibility:public"],
+ )
+
+ java_proto_library(
+ name = "person_java_proto",
+ deps = [":person_proto"],
+ )
+
+ cc_proto_library(
+ name = "person_cc_proto",
+ deps = [":person_proto"],
+ )
+ '';
+
+ toolsBazel = writeScript "bazel" ''
+ #! ${runtimeShell}
+
+ export CXX='${gccStdenv.cc}/bin/g++'
+ export LD='${gccStdenv.cc}/bin/ld'
+ export CC='${gccStdenv.cc}/bin/gcc'
+
+ # XXX: hack for macosX, this flags disable bazel usage of xcode
+ # See: https://github.com/bazelbuild/bazel/issues/4231
+ export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
+
+ exec "$BAZEL_REAL" "$@"
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} (''
+ mkdir $out
+ cp ${WORKSPACE} $out/WORKSPACE
+ touch $out/BUILD.bazel
+ cp ${protoSupport} $out/proto-support.bzl
+ mkdir $out/person
+ cp ${personProto} $out/person/person.proto
+ cp ${personBUILD} $out/person/BUILD.bazel
+ ''
+ + (lib.optionalString gccStdenv.isDarwin ''
+ mkdir $out/tools
+ cp ${toolsBazel} $out/tools/bazel
+ ''));
+
+ testBazel = bazelTest {
+ name = "bazel-test-protocol-buffers";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ buildInputs = [ openjdk8 ];
+ bazelScript = ''
+ ${bazel}/bin/bazel \
+ build \
+ --distdir=${distDir} \
+ --host_javabase='@local_jdk//:jdk' \
+ --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
+ --javabase='@local_jdk//:jdk' \
+ --verbose_failures \
+ //...
+ '';
+ };
+
+in testBazel
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
new file mode 100644
index 000000000000..c02547c08e06
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/python-bin-path-test.nix
@@ -0,0 +1,53 @@
+{ writeText, bazel, bazelTest, runLocal, distDir }:
+
+let
+ WORKSPACE = writeText "WORKSPACE" ''
+ workspace(name = "our_workspace")
+ '';
+
+ pythonLib = writeText "lib.py" ''
+ def foo():
+ return 43
+ '';
+
+ pythonBin = writeText "bin.py" ''
+ from lib import foo
+
+ assert foo() == 43
+ '';
+
+ pythonBUILD = writeText "BUILD" ''
+ py_library(
+ name = "lib",
+ srcs = [ "lib.py" ],
+ )
+
+ py_binary(
+ name = "bin",
+ srcs = [ "bin.py" ],
+ deps = [ ":lib" ],
+ )
+ '';
+
+ workspaceDir = runLocal "our_workspace" {} ''
+ mkdir $out
+ cp ${WORKSPACE} $out/WORKSPACE
+ mkdir $out/python
+ cp ${pythonLib} $out/python/lib.py
+ cp ${pythonBin} $out/python/bin.py
+ cp ${pythonBUILD} $out/python/BUILD.bazel
+ '';
+
+ testBazel = bazelTest {
+ name = "bazel-test-builtin-rules";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ bazelScript = ''
+ ${bazel}/bin/bazel \
+ run \
+ --distdir=${distDir} \
+ //python:bin
+ '';
+ };
+
+in testBazel
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/shebang-test.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/shebang-test.nix
new file mode 100644
index 000000000000..fd94f97a7659
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/shebang-test.nix
@@ -0,0 +1,49 @@
+{
+ bazel
+, bazelTest
+, distDir
+, extracted
+, runLocal
+, unzip
+}:
+
+# Tests that all shebangs are patched appropriately.
+# #!/usr/bin/... should be replaced by Nix store references.
+# #!.../bin/env python should be replaced by Nix store reference to the python interpreter.
+
+let
+
+ workspaceDir = runLocal "our_workspace" {} "mkdir $out";
+
+ testBazel = bazelTest {
+ name = "bazel-test-shebangs";
+ inherit workspaceDir;
+ bazelPkg = bazel;
+ bazelScript = ''
+ set -ueo pipefail
+ FAIL=
+ check_shebangs() {
+ local dir="$1"
+ { grep -Re '#!/usr/bin' $dir && FAIL=1; } || true
+ { grep -Re '#![^[:space:]]*/bin/env' $dir && FAIL=1; } || true
+ }
+ BAZEL_EXTRACTED=${extracted bazel}/install
+ check_shebangs $BAZEL_EXTRACTED
+ while IFS= read -r -d "" zip; do
+ unzipped="./$zip/UNPACKED"
+ mkdir -p "$unzipped"
+ unzip -qq $zip -d "$unzipped"
+ check_shebangs "$unzipped"
+ rm -rf unzipped
+ done < <(find $BAZEL_EXTRACTED -type f -name '*.zip' -or -name '*.jar' -print0)
+ if [[ $FAIL = 1 ]]; then
+ echo "Found files in the bazel distribution with illegal shebangs." >&2
+ echo "Replace those by explicit Nix store paths." >&2
+ echo "Python scripts should not use \`bin/env python' but the Python interpreter's store path." >&2
+ exit 1
+ fi
+ '';
+ buildInputs = [ unzip ];
+ };
+
+in testBazel
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/strict_action_env.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/strict_action_env.patch
new file mode 100644
index 000000000000..1402c20f6bdb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/strict_action_env.patch
@@ -0,0 +1,13 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+index a70b5559bc..10bdffe961 100644
+--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
++++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+@@ -466,7 +466,7 @@ public class BazelRuleClassProvider {
+ // Note that --action_env does not propagate to the host config, so it is not a viable
+ // workaround when a genrule is itself built in the host config (e.g. nested genrules). See
+ // #8536.
+- return "/bin:/usr/bin:/usr/local/bin";
++ return "@strictActionEnvPatch@";
+ }
+
+ String newPath = "";
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch
new file mode 100644
index 000000000000..b93b252f3638
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/trim-last-argument-to-gcc-if-empty.patch
@@ -0,0 +1,37 @@
+From 177b4720d6fbaa7fdd17e5e11b2c79ac8f246786 Mon Sep 17 00:00:00 2001
+From: "Wael M. Nasreddine" <wael.nasreddine@gmail.com>
+Date: Thu, 27 Jun 2019 21:08:51 -0700
+Subject: [PATCH] Trim last argument to gcc if empty, on Darwin
+
+On Darwin, the last argument to GCC is coming up as an empty string.
+This is breaking the build of proto_library targets. However, I was not
+able to reproduce with the example cpp project[0].
+
+This commit removes the last argument if it's an empty string. This is
+not a problem on Linux.
+
+[0]: https://github.com/bazelbuild/examples/tree/master/cpp-tutorial/stage3
+---
+ tools/cpp/osx_cc_wrapper.sh.tpl | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/tools/cpp/osx_cc_wrapper.sh.tpl b/tools/cpp/osx_cc_wrapper.sh.tpl
+index 4c85cd9b6b..6c611e3d25 100644
+--- a/tools/cpp/osx_cc_wrapper.sh.tpl
++++ b/tools/cpp/osx_cc_wrapper.sh.tpl
+@@ -53,7 +53,11 @@ done
+ %{env}
+
+ # Call the C++ compiler
+-%{cc} "$@"
++if [[ ${*: -1} = "" ]]; then
++ %{cc} "${@:0:$#}"
++else
++ %{cc} "$@"
++fi
+
+ function get_library_path() {
+ for libdir in ${LIB_DIRS}; do
+--
+2.19.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
new file mode 100755
index 000000000000..52d40e0f94e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+import sys
+import json
+
+if len(sys.argv) == 1:
+ print("usage: ./this-script WORKSPACE", file=sys.stderr)
+ print("Takes the bazel WORKSPACE file and reads all archives into a json dict (by evaling it as python code)", file=sys.stderr)
+ print("Hail Eris.", file=sys.stderr)
+ sys.exit(1)
+
+http_archives = []
+
+# just the kw args are the dict { name, sha256, urls … }
+def http_archive(**kw):
+ http_archives.append(kw)
+# like http_file
+def http_file(**kw):
+ http_archives.append(kw)
+
+# this is inverted from http_archive/http_file and bundles multiple archives
+def distdir_tar(**kw):
+ for archive_name in kw['archives']:
+ http_archives.append({
+ "name": archive_name,
+ "sha256": kw['sha256'][archive_name],
+ "urls": kw['urls'][archive_name]
+ })
+
+# stubs for symbols we are not interested in
+# might need to be expanded if new bazel releases add symbols to the workspace
+def workspace(name): pass
+def load(*args): pass
+def bind(**kw): pass
+def list_source_repository(**kw): pass
+def new_local_repository(**kw): pass
+def local_repository(**kw): pass
+DOC_VERSIONS = []
+def stardoc_repositories(**kw): pass
+def skydoc_repositories(**kw): pass
+def rules_sass_dependencies(**kw): pass
+def node_repositories(**kw): pass
+def sass_repositories(**kw): pass
+def register_execution_platforms(*args): pass
+def rbe_autoconfig(*args, **kw): pass
+def rules_pkg_dependencies(*args, **kw): pass
+def winsdk_configure(*args, **kw): pass
+def register_local_rc_exe_toolchains(*args, **kw): pass
+def register_toolchains(*args, **kw): pass
+def debian_deps(): pass
+
+# execute the WORKSPACE like it was python code in this module,
+# using all the function stubs from above.
+with open(sys.argv[1]) as f:
+ exec(f.read())
+
+# transform to a dict with the names as keys
+d = { el['name']: el for el in http_archives }
+
+print(json.dumps(d, sort_keys=True, indent=4))
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/cmakepaths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/cmakepaths.patch
new file mode 100644
index 000000000000..d237267078e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/cmakepaths.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 04c5c58..429ca47 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,7 +24,7 @@ set(CMAKE_OSX_ARCHITECTURES "i386;x86_64" CACHE STRING "Rogue")
+
+ set(EAR_LIB_FILE ${CMAKE_SHARED_LIBRARY_PREFIX}ear${CMAKE_SHARED_LIBRARY_SUFFIX})
+ set(EAR_LIB_PATH "${CMAKE_INSTALL_LIBDIR}/bear")
+-set(DEFAULT_PRELOAD_FILE ${CMAKE_INSTALL_PREFIX}/${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
++set(DEFAULT_PRELOAD_FILE ${EAR_LIB_PATH}/${EAR_LIB_FILE} CACHE STRING "Default path to libear.")
+
+ add_subdirectory(libear)
+ add_subdirectory(bear)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
new file mode 100644
index 000000000000..bc7bb46cd5b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, python3 }:
+
+stdenv.mkDerivation rec {
+ pname = "bear";
+ version = "2.4.2";
+
+ src = fetchFromGitHub {
+ owner = "rizsotto";
+ repo = pname;
+ rev = version;
+ sha256 = "1w1kyjzvvy5lj16kn3yyf7iil2cqlfkszi8kvagql7f5h5l6w9b1";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ python3 ]; # just for shebang of bin/bear
+
+ doCheck = false; # all fail
+
+ patches = [ ./ignore_wrapper.patch ./cmakepaths.patch ];
+
+ meta = with stdenv.lib; {
+ description = "Tool that generates a compilation database for clang tooling";
+ longDescription = ''
+ Note: the bear command is very useful to generate compilation commands
+ e.g. for YouCompleteMe. You just enter your development nix-shell
+ and run `bear make`. It's not perfect, but it gets a long way.
+ '';
+ homepage = "https://github.com/rizsotto/Bear";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.babariviere ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
new file mode 100644
index 000000000000..8effc723bbab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bear/ignore_wrapper.patch
@@ -0,0 +1,27 @@
+--- a/bear/main.py.in
++++ b/bear/main.py.in
+@@ -49,6 +49,7 @@ import tempfile
+ import shutil
+ import contextlib
+ import logging
++from distutils.spawn import find_executable
+
+ # Map of ignored compiler option for the creation of a compilation database.
+ # This map is used in _split_command method, which classifies the parameters
+@@ -569,7 +570,15 @@ class Compilation:
+ (compiler, language, rest of the command) otherwise """
+
+ if command: # not empty list will allow to index '0' and '1:'
+- executable = os.path.basename(command[0]) # type: str
++ executable_file = find_executable(command[0])
++ if executable_file:
++ absolute_executable = os.path.realpath(executable_file)
++ # Ignore Nix wrappers.
++ if 'wrapper' in absolute_executable:
++ return None
++ executable = os.path.basename(absolute_executable)
++ else:
++ executable = os.path.basename(command[0])
+ parameters = command[1:] # type: List[str]
+ # 'wrapper' 'parameters' and
+ # 'wrapper' 'compiler' 'parameters' are valid. \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
new file mode 100644
index 000000000000..45612182ed96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
@@ -0,0 +1,92 @@
+{ stdenv
+, fetchurl
+, coursier
+, autoPatchelfHook
+, installShellFiles
+, jre
+, lib
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bloop";
+ version = "1.4.4";
+
+ bloop-coursier-channel = fetchurl {
+ url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
+ sha256 = "1pyf559bpnsmvca4kw36nb9lwkwa9q0ghrpa117s96dhvrp3i2bv";
+ };
+
+ bloop-bash = fetchurl {
+ url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bash-completions";
+ sha256 = "1ldxlqv353gvhdn4yq7z506ywvnjv6fjsi8wigwhzg89876pwsys";
+ };
+
+ bloop-fish = fetchurl {
+ url = "https://github.com/scalacenter/bloop/releases/download/v${version}/fish-completions";
+ sha256 = "1pa8h81l2498q8dbd83fzipr99myjwxpy8xdgzhvqzdmfv6aa4m0";
+ };
+
+ bloop-zsh = fetchurl {
+ url = "https://github.com/scalacenter/bloop/releases/download/v${version}/zsh-completions";
+ sha256 = "1xzg0qfkjdmzm3mvg82mc4iia8cl7b6vbl8ng4ir2xsz00zjrlsq";
+ };
+
+ bloop-coursier = stdenv.mkDerivation rec {
+ name = "${pname}-coursier-${version}";
+
+ platform = if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
+ else if stdenv.isDarwin && stdenv.isx86_64 then "x86_64-apple-darwin"
+ else throw "unsupported platform";
+
+ phases = [ "installPhase" ];
+ installPhase = ''
+ export COURSIER_CACHE=$(pwd)
+ export COURSIER_JVM_CACHE=$(pwd)
+
+ mkdir channel
+ ln -s ${bloop-coursier-channel} channel/bloop.json
+ ${coursier}/bin/coursier install --install-dir $out --install-platform ${platform} --default-channels=false --channel channel --only-prebuilt=true bloop
+
+ # Remove binary part of the coursier launcher script to make derivation output hash stable
+ sed -i '5,$ d' $out/bloop
+ '';
+
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = if stdenv.isLinux && stdenv.isx86_64 then "0hf0priy93zqba78a9nvbgl3mzwlc4jz43gz7cv2cdkj6x0lp0y1"
+ else if stdenv.isDarwin && stdenv.isx86_64 then "0g2rnmlfnqymji4f4rn0kaz7hipgv3bakdpn08600gg1f3s8gabw"
+ else throw "unsupported platform";
+ };
+
+ dontUnpack = true;
+ nativeBuildInputs = [ autoPatchelfHook installShellFiles ];
+ buildInputs = [ stdenv.cc.cc.lib zlib ];
+ propagatedBuildInputs = [ jre ];
+
+ installPhase = ''
+ export COURSIER_CACHE=$(pwd)
+ export COURSIER_JVM_CACHE=$(pwd)
+
+ mkdir -p $out/bin
+ cp ${bloop-coursier}/bloop $out/bloop
+ cp ${bloop-coursier}/.bloop.aux $out/.bloop.aux
+ ln -s $out/bloop $out/bin/bloop
+
+ # patch the bloop launcher so that it works when symlinked
+ sed "s|\$(dirname \"\$0\")|$out|" -i $out/bloop
+
+ #Install completions
+ installShellCompletion --name bloop --bash ${bloop-bash}
+ installShellCompletion --name _bloop --zsh ${bloop-zsh}
+ installShellCompletion --name bloop.fish --fish ${bloop-fish}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://scalacenter.github.io/bloop/";
+ license = licenses.asl20;
+ description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ maintainers = with maintainers; [ tomahna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/bootstrap-fix.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/bootstrap-fix.patch
new file mode 100644
index 000000000000..9b1267257ad1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/bootstrap-fix.patch
@@ -0,0 +1,10 @@
+--- bmake/make-bootstrap.sh.in.orig 2019-02-19 10:55:21.733606117 -0800
++++ bmake/make-bootstrap.sh.in 2019-02-19 10:56:02.150771541 -0800
+@@ -4,6 +4,7 @@
+
+ srcdir=@srcdir@
+
++prefix="@prefix@"
+ DEFAULT_SYS_PATH="@default_sys_path@"
+
+ case "@use_meta@" in
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
new file mode 100644
index 000000000000..9bda4cde0449
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl
+, getopt
+}:
+
+stdenv.mkDerivation rec {
+ pname = "bmake";
+ version = "20200902";
+
+ src = fetchurl {
+ url = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
+ sha256 = "1v1v81llsiy8qbpy38nml1x08dhrihwh040pqgwbwb9zy1108b08";
+ };
+
+ nativeBuildInputs = [ getopt ];
+
+ patches = [
+ ./bootstrap-fix.patch
+ ./fix-unexport-env-test.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Portable version of NetBSD 'make'";
+ homepage = "http://www.crufty.net/help/sjg/bmake.html";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch
new file mode 100644
index 000000000000..339348f37c32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/bmake/fix-unexport-env-test.patch
@@ -0,0 +1,13 @@
+--- bmake/unit-tests/unexport-env.mk.orig 2019-02-19 10:24:14.356713136 -0800
++++ bmake/unit-tests/unexport-env.mk 2019-02-19 10:25:43.838775388 -0800
+@@ -3,8 +3,8 @@
+ # pick up a bunch of exported vars
+ .include "export.mk"
+
+-# an example of setting up a minimal environment.
+-PATH = /bin:/usr/bin:/sbin:/usr/sbin
++# preserve PATH so commands used in the "all" target are still available
++PATH := ${PATH}
+
+ # now clobber the environment to just PATH and UT_TEST
+ UT_TEST = unexport-env
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh
new file mode 100644
index 000000000000..c1481dc6a144
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh
@@ -0,0 +1,13 @@
+source $stdenv/setup
+
+boot_bin=$out/bin/boot
+
+mkdir -pv $(dirname $boot_bin)
+cp -v $src $boot_bin
+chmod -v 755 $boot_bin
+
+patchShebangs $boot_bin
+
+sed -i \
+ -e "s;\${BOOT_JAVA_COMMAND:-java};\${BOOT_JAVA_COMMAND:-${jdk}/bin/java};g" \
+ $boot_bin
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
new file mode 100644
index 000000000000..09c1eada54b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/boot/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, jdk }:
+
+stdenv.mkDerivation rec {
+ version = "2.7.2";
+ pname = "boot";
+
+ src = fetchurl {
+ url = "https://github.com/boot-clj/boot-bin/releases/download/${version}/boot.sh";
+ sha256 = "1hqp3xxmsj5vkym0l3blhlaq9g3w0lhjgmp37g6y3rr741znkk8c";
+ };
+
+ inherit jdk;
+
+ builder = ./builder.sh;
+
+ propagatedBuildInputs = [ jdk ];
+
+ meta = with stdenv.lib; {
+ description = "Build tooling for Clojure";
+ homepage = "https://boot-clj.com/";
+ license = licenses.epl10;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ ragge ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix
new file mode 100644
index 000000000000..41fc0940b9d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, jdk, ant, python2, python2Packages, watchman, bash, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "buck";
+ version = "2019.10.17.01";
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1irgp8yq1z11bq3b83yxvj35wqqq7y7b8q4d4y0hc05ac19ja0vj";
+ };
+
+ patches = [ ./pex-mtime.patch ];
+
+ postPatch = ''
+ grep -l -r '/bin/bash' --null | xargs -0 sed -i -e "s!/bin/bash!${bash}/bin/bash!g"
+ '';
+
+ buildInputs = [ jdk ant python2 watchman python2Packages.pywatchman ];
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildPhase = ''
+ ant
+
+ PYTHONDONTWRITEBYTECODE=true ./bin/buck build -c buck.release_version=${version} buck
+ '';
+
+ installPhase = ''
+ install -D -m755 buck-out/gen/programs/buck.pex $out/bin/buck
+ wrapProgram $out/bin/buck \
+ --prefix PYTHONPATH : $PYTHONPATH \
+ --prefix PATH : "${stdenv.lib.makeBinPath [jdk watchman]}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://buck.build/";
+ description = "A high-performance build tool";
+ maintainers = [ maintainers.jgertm maintainers.marsam ];
+ license = licenses.asl20;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/pex-mtime.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/pex-mtime.patch
new file mode 100644
index 000000000000..b8726e64a604
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/buck/pex-mtime.patch
@@ -0,0 +1,13 @@
+diff --git a/third-party/py/pex/pex/common.py b/third-party/py/pex/pex/common.py
+index 76459ce23..eff411b20 100644
+--- a/third-party/py/pex/pex/common.py
++++ b/third-party/py/pex/pex/common.py
+@@ -328,4 +328,7 @@ class Chroot(object):
+ def zip(self, filename, mode='wb'):
+ with contextlib.closing(zipfile.ZipFile(filename, mode)) as zf:
+ for f in sorted(self.files()):
+- zf.write(os.path.join(self.chroot, f), arcname=f, compress_type=zipfile.ZIP_DEFLATED)
++ path = os.path.join(self.chroot, f)
++ instant = 615532801
++ os.utime(path, (instant, instant))
++ zf.write(path, arcname=f, compress_type=zipfile.ZIP_DEFLATED)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/2.8.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/2.8.nix
new file mode 100644
index 000000000000..804bdd76f673
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/2.8.nix
@@ -0,0 +1,87 @@
+{ stdenv, fetchurl, fetchpatch, curl, expat, zlib, bzip2
+, useNcurses ? false, ncurses, useQt4 ? false, qt4, ps
+}:
+
+with stdenv.lib;
+
+assert stdenv ? cc;
+assert stdenv.cc ? libc;
+
+let
+ os = stdenv.lib.optionalString;
+ majorVersion = "2.8";
+ minorVersion = "12.2";
+ version = "${majorVersion}.${minorVersion}";
+in
+
+stdenv.mkDerivation rec {
+ name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
+
+ inherit majorVersion;
+
+ src = fetchurl {
+ url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
+ sha256 = "0phf295a9cby0v7zqdswr238v5aiy3rb2fs6dz39zjxbmzlp8rcc";
+ };
+
+ enableParallelBuilding = true;
+
+ patches =
+ [(fetchpatch { # see https://www.cmake.org/Bug/view.php?id=13959
+ name = "FindFreetype-2.5.patch";
+ url = "https://public.kitware.com/Bug/file/4660/0001-Support-finding-freetype2-using-pkg-config.patch";
+ sha256 = "136z63ff83hnwd247cq4m8m8164pklzyl5i2csf5h6wd8p01pdkj";
+ })] ++
+ # Don't search in non-Nix locations such as /usr, but do search in our libc.
+ [ ./search-path-2.8.patch ] ++
+ optional (stdenv.hostPlatform != stdenv.buildPlatform) (fetchurl {
+ name = "fix-darwin-cross-compile.patch";
+ url = "https://public.kitware.com/Bug/file_download.php?"
+ + "file_id=4981&type=bug";
+ sha256 = "16acmdr27adma7gs9rs0dxdiqppm15vl3vv3agy7y8s94wyh4ybv";
+ });
+
+ postPatch = ''
+ substituteInPlace Utilities/cmlibarchive/CMakeLists.txt \
+ --replace '"-framework CoreServices"' '""'
+ '';
+
+ buildInputs = [ setupHook curl expat zlib bzip2 ]
+ ++ optional useNcurses ncurses
+ ++ optional useQt4 qt4;
+
+ propagatedBuildInputs = [ ps ];
+
+ CMAKE_PREFIX_PATH = concatStringsSep ":"
+ (concatMap (p: [ (p.dev or p) (p.out or p) ]) buildInputs);
+
+ configureFlags = [
+ "--docdir=/share/doc/${name}"
+ "--mandir=/share/man"
+ "--system-libs"
+ "--no-system-libarchive"
+ ] ++ stdenv.lib.optional useQt4 "--qt-gui";
+
+ setupHook = ./setup-hook.sh;
+
+ dontUseCmakeConfigure = true;
+
+ preConfigure = with stdenv; ''
+ fixCmakeFiles .
+ substituteInPlace Modules/Platform/UnixPaths.cmake \
+ --subst-var-by libc_bin ${getBin cc.libc} \
+ --subst-var-by libc_dev ${getDev cc.libc} \
+ --subst-var-by libc_lib ${getLib cc.libc}
+ configureFlags="--parallel=''${NIX_BUILD_CORES:-1} $configureFlags"
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ homepage = "https://cmake.org";
+ description = "Cross-Platform Makefile Generator";
+ platforms = if useQt4 then qt4.meta.platforms else stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ xfix ];
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/3.2.2-cygwin.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/3.2.2-cygwin.patch
new file mode 100644
index 000000000000..982aba17e874
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/3.2.2-cygwin.patch
@@ -0,0 +1,274 @@
+--- cmake-3.2.2/Source/cmFileCommand.cxx 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/ccmFileCommand.cxx 2015-06-10 11:02:27.345598700 +0200
+@@ -1179,7 +1179,7 @@
+ MatchProperties CollectMatchProperties(const char* file)
+ {
+ // Match rules are case-insensitive on some platforms.
+-#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
++#if defined(_WIN32) || defined(__APPLE__)
+ std::string lower = cmSystemTools::LowerCase(file);
+ const char* file_to_match = lower.c_str();
+ #else
+--- cmake-3.2.2/Source/cmInstallCommand.cxx 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/cmInstallCommand.cxx 2015-06-10 11:04:19.257935200 +0200
+@@ -1138,7 +1138,7 @@
+ {
+ literal_args += " REGEX \"";
+ // Match rules are case-insensitive on some platforms.
+-#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
++#if defined(_WIN32) || defined(__APPLE__)
+ std::string regex = cmSystemTools::LowerCase(args[i]);
+ #else
+ std::string regex = args[i];
+--- cmake-3.2.2/Source/kwsys/Glob.cxx 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/kwsys/Glob.cxx 2015-06-10 11:05:51.602674000 +0200
+@@ -37,7 +37,7 @@
+ #include <string.h>
+ namespace KWSYS_NAMESPACE
+ {
+-#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__)
++#if defined(_WIN32) || defined(__APPLE__)
+ // On Windows and apple, no difference between lower and upper case
+ # define KWSYS_GLOB_CASE_INDEPENDENT
+ #endif
+--- cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-06-10 11:13:00.308303500 +0200
+@@ -911,7 +911,7 @@
+ // Hide implementation details in an anonymous namespace.
+ namespace {
+ // *****************************************************************************
+-#if defined(__linux) || defined(__APPLE__)
++#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
+ int LoadLines(
+ FILE *file,
+ kwsys_stl::vector<kwsys_stl::string> &lines)
+@@ -947,7 +947,7 @@
+ return nRead;
+ }
+
+-# if defined(__linux)
++# if defined(__linux) || defined(__CYGWIN__)
+ // *****************************************************************************
+ int LoadLines(
+ const char *fileName,
+@@ -986,7 +986,7 @@
+ }
+ #endif
+
+-#if defined(__linux)
++#if defined(__linux) || defined(__CYGWIN__)
+ // ****************************************************************************
+ template<typename T>
+ int GetFieldsFromFile(
+@@ -3132,7 +3132,6 @@
+ pos = buffer.find("processor\t",pos+1);
+ }
+
+-#ifdef __linux
+ // Find the largest physical id.
+ int maxId = -1;
+ kwsys_stl::string idc =
+@@ -3165,14 +3164,6 @@
+ atoi(this->ExtractValueFromCpuInfoFile(buffer,"ncpus active").c_str());
+ }
+
+-#else // __CYGWIN__
+- // does not have "physical id" entries, neither "cpu cores"
+- // this has to be fixed for hyper-threading.
+- kwsys_stl::string cpucount =
+- this->ExtractValueFromCpuInfoFile(buffer,"cpu count");
+- this->NumberOfPhysicalCPU=
+- this->NumberOfLogicalCPU = atoi(cpucount.c_str());
+-#endif
+ // gotta have one, and if this is 0 then we get a / by 0n
+ // better to have a bad answer than a crash
+ if(this->NumberOfPhysicalCPU <= 0)
+@@ -3370,7 +3361,7 @@
+ GlobalMemoryStatusEx(&statex);
+ return statex.ullTotalPhys/1024;
+ # endif
+-#elif defined(__linux)
++#elif defined(__linux) || defined(__CYGWIN__)
+ SystemInformation::LongLong memTotal=0;
+ int ierr=GetFieldFromFile("/proc/meminfo","MemTotal:",memTotal);
+ if (ierr)
+@@ -3501,7 +3492,7 @@
+ GlobalMemoryStatusEx(&statex);
+ return (statex.ullTotalPhys - statex.ullAvailPhys)/1024;
+ # endif
+-#elif defined(__linux)
++#elif defined(__linux) || defined(__CYGWIN__)
+ const char *names[3]={"MemTotal:","MemFree:",NULL};
+ SystemInformation::LongLong values[2]={SystemInformation::LongLong(0)};
+ int ierr=GetFieldsFromFile("/proc/meminfo",names,values);
+@@ -3560,7 +3551,7 @@
+ return -2;
+ }
+ return pmc.WorkingSetSize/1024;
+-#elif defined(__linux)
++#elif defined(__linux) || defined(__CYGWIN__)
+ SystemInformation::LongLong memUsed=0;
+ int ierr=GetFieldFromFile("/proc/self/status","VmRSS:",memUsed);
+ if (ierr)
+@@ -3612,7 +3603,7 @@
+ {
+ #if defined(_WIN32)
+ return GetCurrentProcessId();
+-#elif defined(__linux) || defined(__APPLE__)
++#elif defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
+ return getpid();
+ #else
+ return -1;
+--- cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-06-10 11:21:58.980443200 +0200
+@@ -93,19 +93,12 @@
+ # if defined(_MSC_VER) && _MSC_VER >= 1800
+ # define KWSYS_WINDOWS_DEPRECATED_GetVersionEx
+ # endif
+-#elif defined (__CYGWIN__)
+-# include <windows.h>
+-# undef _WIN32
+ #endif
+
+ #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H
+ extern char **environ;
+ #endif
+
+-#ifdef __CYGWIN__
+-# include <sys/cygwin.h>
+-#endif
+-
+ // getpwnam doesn't exist on Windows and Cray Xt3/Catamount
+ // same for TIOCGWINSZ
+ #if defined(_WIN32) || defined (__LIBCATAMOUNT__)
+@@ -1148,15 +1141,7 @@
+ {
+ return false;
+ }
+-#if defined(__CYGWIN__)
+- // Convert filename to native windows path if possible.
+- char winpath[MAX_PATH];
+- if(SystemTools::PathCygwinToWin32(filename.c_str(), winpath))
+- {
+- return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES);
+- }
+- return access(filename.c_str(), R_OK) == 0;
+-#elif defined(_WIN32)
++#if defined(_WIN32)
+ return (GetFileAttributesW(
+ SystemTools::ConvertToWindowsExtendedPath(filename).c_str())
+ != INVALID_FILE_ATTRIBUTES);
+@@ -1190,28 +1175,6 @@
+ }
+
+ //----------------------------------------------------------------------------
+-#ifdef __CYGWIN__
+-bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path)
+-{
+- SystemToolsTranslationMap::iterator i =
+- SystemTools::Cyg2Win32Map->find(path);
+-
+- if (i != SystemTools::Cyg2Win32Map->end())
+- {
+- strncpy(win32_path, i->second.c_str(), MAX_PATH);
+- }
+- else
+- {
+- if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0)
+- {
+- win32_path[0] = 0;
+- }
+- SystemToolsTranslationMap::value_type entry(path, win32_path);
+- SystemTools::Cyg2Win32Map->insert(entry);
+- }
+- return win32_path[0] != 0;
+-}
+-#endif
+
+ bool SystemTools::Touch(const kwsys_stl::string& filename, bool create)
+ {
+@@ -4307,7 +4270,7 @@
+
+ bool SystemTools::FileIsFullPath(const char* in_name, size_t len)
+ {
+-#if defined(_WIN32) || defined(__CYGWIN__)
++#if defined(_WIN32)
+ // On Windows, the name must be at least two characters long.
+ if(len < 2)
+ {
+@@ -5078,9 +5041,6 @@
+ static unsigned int SystemToolsManagerCount;
+ SystemToolsTranslationMap *SystemTools::TranslationMap;
+ SystemToolsTranslationMap *SystemTools::LongPathMap;
+-#ifdef __CYGWIN__
+-SystemToolsTranslationMap *SystemTools::Cyg2Win32Map;
+-#endif
+
+ // SystemToolsManager manages the SystemTools singleton.
+ // SystemToolsManager should be included in any translation unit
+@@ -5126,9 +5086,6 @@
+ // Allocate the translation map first.
+ SystemTools::TranslationMap = new SystemToolsTranslationMap;
+ SystemTools::LongPathMap = new SystemToolsTranslationMap;
+-#ifdef __CYGWIN__
+- SystemTools::Cyg2Win32Map = new SystemToolsTranslationMap;
+-#endif
+
+ // Add some special translation paths for unix. These are not added
+ // for windows because drive letters need to be maintained. Also,
+@@ -5183,9 +5140,6 @@
+ {
+ delete SystemTools::TranslationMap;
+ delete SystemTools::LongPathMap;
+-#ifdef __CYGWIN__
+- delete SystemTools::Cyg2Win32Map;
+-#endif
+ }
+
+
+--- cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-06-10 11:24:24.271286600 +0200
+@@ -298,15 +298,6 @@
+ static bool FileExists(const kwsys_stl::string& filename);
+
+ /**
+- * Converts Cygwin path to Win32 path. Uses dictionary container for
+- * caching and calls to cygwin_conv_to_win32_path from Cygwin dll
+- * for actual translation. Returns true on success, else false.
+- */
+-#ifdef __CYGWIN__
+- static bool PathCygwinToWin32(const char *path, char *win32_path);
+-#endif
+-
+- /**
+ * Return file length
+ */
+ static unsigned long FileLength(const kwsys_stl::string& filename);
+@@ -942,9 +933,6 @@
+ */
+ static SystemToolsTranslationMap *TranslationMap;
+ static SystemToolsTranslationMap *LongPathMap;
+-#ifdef __CYGWIN__
+- static SystemToolsTranslationMap *Cyg2Win32Map;
+-#endif
+ friend class SystemToolsManager;
+ };
+
+--- cmake-3.2.2/Modules/FindCurses.cmake 2015-04-13 19:09:00.000000000 +0200
++++ cmake-3.2.2/Modules/FindCurses.cmake 2015-06-10 12:10:19.682030300 +0200
+@@ -60,15 +60,6 @@
+ if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES))
+ set(CURSES_USE_NCURSES TRUE)
+ endif()
+-# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html
+-# cygwin ncurses stopped providing curses.h symlinks see above
+-# message. Cygwin is an ncurses package, so force ncurses on
+-# cygwin if the curses.h is missing
+-if(CYGWIN)
+- if(NOT EXISTS /usr/include/curses.h)
+- set(CURSES_USE_NCURSES TRUE)
+- endif()
+-endif()
+
+
+ # Not sure the logic is correct here.
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch
new file mode 100644
index 000000000000..75873d6055c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch
@@ -0,0 +1,44 @@
+diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
+index 1b6bb00d4c..487114daa8 100644
+--- a/Source/CMakeLists.txt
++++ b/Source/CMakeLists.txt
+@@ -893,7 +893,6 @@ endif()
+ # On Apple we need CoreFoundation and CoreServices
+ if(APPLE)
+ target_link_libraries(CMakeLib "-framework CoreFoundation")
+- target_link_libraries(CMakeLib "-framework CoreServices")
+ endif()
+
+ if(WIN32 AND NOT UNIX)
+diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
+index a5ce5d18f4..3d6838ce82 100644
+--- a/Source/cmGlobalXCodeGenerator.cxx
++++ b/Source/cmGlobalXCodeGenerator.cxx
+@@ -43,11 +43,6 @@
+
+ struct cmLinkImplementation;
+
+-#if !defined(CMAKE_BOOTSTRAP) && defined(__APPLE__)
+-# define HAVE_APPLICATION_SERVICES
+-# include <ApplicationServices/ApplicationServices.h>
+-#endif
+-
+ #if !defined(CMAKE_BOOTSTRAP)
+ # include "cmXMLParser.h"
+
+diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
+index bfcaf30bb7..1da540aee5 100644
+--- a/Utilities/cmlibarchive/CMakeLists.txt
++++ b/Utilities/cmlibarchive/CMakeLists.txt
+@@ -2007,11 +2007,6 @@ IF(ENABLE_TEST)
+ ENDIF(ENABLE_TEST)
+ ENDIF()
+
+-# We need CoreServices on Mac OS.
+-IF(APPLE)
+- LIST(APPEND ADDITIONAL_LIBS "-framework CoreServices")
+-ENDIF(APPLE)
+-
+ add_subdirectory(libarchive)
+ IF(0) # CMake does not build libarchive's command-line tools.
+ add_subdirectory(cat)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
new file mode 100644
index 000000000000..559a4c191b68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
@@ -0,0 +1,128 @@
+{ stdenv, lib, fetchurl, pkgconfig, fetchpatch
+, bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
+, buildPackages
+# darwin attributes
+, ps
+, isBootstrap ? false
+, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin)
+, useNcurses ? false, ncurses
+, useQt4 ? false, qt4
+, withQt5 ? false, qtbase
+}:
+
+assert withQt5 -> useQt4 == false;
+assert useQt4 -> withQt5 == false;
+
+stdenv.mkDerivation rec {
+ pname = "cmake"
+ + lib.optionalString isBootstrap "-boot"
+ + lib.optionalString useNcurses "-cursesUI"
+ + lib.optionalString withQt5 "-qt5UI"
+ + lib.optionalString useQt4 "-qt4UI";
+ version = "3.18.2";
+
+ src = fetchurl {
+ url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
+ # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
+ sha256 = "0zhxsnxm5d8wdarz2gs3r41r1dfrnh35ki75fa684gaxfzy40kjx";
+ };
+
+ patches = [
+ # Don't search in non-Nix locations such as /usr, but do search in our libc.
+ ./search-path.patch
+
+ # Don't depend on frameworks.
+ ./application-services.patch
+
+ # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d
+ ./libuv-application-services.patch
+
+ ] ++ lib.optional stdenv.isCygwin ./3.2.2-cygwin.patch;
+
+ outputs = [ "out" ];
+ setOutputFlags = false;
+
+ setupHook = ./setup-hook.sh;
+
+ buildInputs =
+ [ setupHook pkgconfig ]
+ ++ lib.optionals useSharedLibraries [ bzip2 curl expat libarchive xz zlib libuv rhash ]
+ ++ lib.optional useNcurses ncurses
+ ++ lib.optional useQt4 qt4
+ ++ lib.optional withQt5 qtbase;
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+ propagatedBuildInputs = lib.optional stdenv.isDarwin ps;
+
+ preConfigure = ''
+ fixCmakeFiles .
+ substituteInPlace Modules/Platform/UnixPaths.cmake \
+ --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \
+ --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \
+ --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc}
+ substituteInPlace Modules/FindCxxTest.cmake \
+ --replace "$""{PYTHON_EXECUTABLE}" ${stdenv.shell}
+ ''
+ # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake
+ + ''
+ configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags"
+ '';
+
+ configureFlags = [
+ "--docdir=share/doc/${pname}${version}"
+ ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
+ ++ lib.optional (useQt4 || withQt5) "--qt-gui"
+ # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568
+ ++ lib.optionals stdenv.hostPlatform.is32bit [
+ "CFLAGS=-D_FILE_OFFSET_BITS=64"
+ "CXXFLAGS=-D_FILE_OFFSET_BITS=64"
+ ]
+ ++ [
+ "--"
+ # We should set the proper `CMAKE_SYSTEM_NAME`.
+ # http://www.cmake.org/Wiki/CMake_Cross_Compiling
+ #
+ # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
+ # strip. Otherwise they are taken to be relative to the source root of the
+ # package being built.
+ "-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++"
+ "-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc"
+ "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar"
+ "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib"
+ "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip"
+ ]
+ # Avoid depending on frameworks.
+ ++ lib.optional (!useNcurses) "-DBUILD_CursesDialog=OFF";
+
+ # make install attempts to use the just-built cmake
+ preInstall = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ sed -i 's|bin/cmake|${buildPackages.cmake}/bin/cmake|g' Makefile
+ '';
+
+ dontUseCmakeConfigure = true;
+ enableParallelBuilding = true;
+
+ # This isn't an autoconf configure script; triples are passed via
+ # CMAKE_SYSTEM_NAME, etc.
+ configurePlatforms = [ ];
+
+ doCheck = false; # fails
+
+ meta = with lib; {
+ homepage = "https://cmake.org/";
+ changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/"
+ + "release/${lib.versions.majorMinor version}.html";
+ description = "Cross-Platform Makefile Generator";
+ longDescription = ''
+ CMake is an open-source, cross-platform family of tools designed to
+ build, test and package software. CMake is used to control the software
+ compilation process using simple platform and compiler independent
+ configuration files, and generate native makefiles and workspaces that
+ can be used in the compiler environment of your choice.
+ '';
+ platforms = if useQt4 then qt4.meta.platforms else platforms.all;
+ maintainers = with maintainers; [ ttuegel lnl7 ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
new file mode 100644
index 000000000000..6607a9c6ed1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
@@ -0,0 +1,55 @@
+diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt
+index 7625cf65d9..167903e309 100644
+--- a/Utilities/cmlibuv/CMakeLists.txt
++++ b/Utilities/cmlibuv/CMakeLists.txt
+@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ src/unix/kqueue.c
+ src/unix/proctitle.c
+ )
++
++ include(CheckIncludeFile)
++
++ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices)
++ if (HAVE_ApplicationServices)
++ list(APPEND uv_defines
++ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1
++ )
++ endif()
++
++ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices)
++ if (HAVE_CoreServices)
++ list(APPEND uv_defines
++ HAVE_CORESERVICES_CORESERVICES_H=1
++ )
++ endif()
+ endif()
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c
+index a51f29b3f6..3f6bf01968 100644
+--- a/Utilities/cmlibuv/src/unix/fsevents.c
++++ b/Utilities/cmlibuv/src/unix/fsevents.c
+@@ -21,7 +21,7 @@
+ #include "uv.h"
+ #include "internal.h"
+
+-#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
++#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
+
+ /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */
+ /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */
+@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
+ void uv__fsevents_loop_delete(uv_loop_t* loop) {
+ }
+
+-#else /* TARGET_OS_IPHONE */
++#else /* !HAVE_CORESERVICES_CORESERVICES_H */
+
+ #include "darwin-stub.h"
+
+@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
+ return 0;
+ }
+
+-#endif /* TARGET_OS_IPHONE */
++#endif /* !HAVE_CORESERVICES_CORESERVICES_H */
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path-2.8.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path-2.8.patch
new file mode 100644
index 000000000000..9fc949661686
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path-2.8.patch
@@ -0,0 +1,92 @@
+diff -ru3 cmake-2.8.12.2/Modules/Platform/Linux.cmake cmake-2.8.12.2-new/Modules/Platform/Linux.cmake
+--- cmake-2.8.12.2/Modules/Platform/Linux.cmake 2014-01-16 21:15:08.000000000 +0400
++++ cmake-2.8.12.2-new/Modules/Platform/Linux.cmake 2016-04-13 22:00:32.928575740 +0300
+@@ -36,22 +36,11 @@
+ # checking the platform every time. This option is advanced enough
+ # that only package maintainers should need to adjust it. They are
+ # capable of providing a setting on the command line.
+- if(EXISTS "/etc/debian_version")
+- set(CMAKE_INSTALL_SO_NO_EXE 1 CACHE INTERNAL
+- "Install .so files without execute permission.")
+- else()
+- set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
+- "Install .so files without execute permission.")
+- endif()
++ set(CMAKE_INSTALL_SO_NO_EXE 0 CACHE INTERNAL
++ "Install .so files without execute permission.")
+ endif()
+
+ # Match multiarch library directory names.
+ set(CMAKE_LIBRARY_ARCHITECTURE_REGEX "[a-z0-9_]+(-[a-z0-9_]+)?-linux-gnu[a-z0-9_]*")
+
+ include(Platform/UnixPaths)
+-
+-# Debian has lib64 paths only for compatibility so they should not be
+-# searched.
+-if(EXISTS "/etc/debian_version")
+- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
+-endif()
+diff -ru3 cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake
+--- cmake-2.8.12.2/Modules/Platform/UnixPaths.cmake 2014-01-16 21:15:08.000000000 +0400
++++ cmake-2.8.12.2-new/Modules/Platform/UnixPaths.cmake 2016-04-14 00:09:10.106362636 +0300
+@@ -32,9 +32,6 @@
+ # List common installation prefixes. These will be used for all
+ # search types.
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- # Standard
+- /usr/local /usr /
+-
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+
+@@ -44,44 +41,26 @@
+
+ # List common include file locations not under the common prefixes.
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+- # Windows API on Cygwin
+- /usr/include/w32api
+-
+- # X11
+- /usr/X11R6/include /usr/include/X11
+-
+- # Other
+- /usr/pkg/include
+- /opt/csw/include /opt/include
+- /usr/openwin/include
++ @libc_dev@/include
+ )
+
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+- # Windows API on Cygwin
+- /usr/lib/w32api
+-
+- # X11
+- /usr/X11R6/lib /usr/lib/X11
+-
+- # Other
+- /usr/pkg/lib
+- /opt/csw/lib /opt/lib
+- /usr/openwin/lib
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
+- /usr/pkg/bin
++ @libc_bin@/bin
+ )
+
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+- /lib /usr/lib /usr/lib32 /usr/lib64
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
+- /usr/include
++ @libc_dev@/include
+ )
+ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
+- /usr/include
++ @libc_dev@/include
+ )
+
+ # Enable use of lib64 search path variants by default.
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch
new file mode 100644
index 000000000000..b71c2dd44416
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -0,0 +1,74 @@
+diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake
+index b9381c3d7d..cecc40a89e 100644
+--- a/Modules/Platform/UnixPaths.cmake
++++ b/Modules/Platform/UnixPaths.cmake
+@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+ # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+ # synchronized
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- # Standard
+- /usr/local /usr /
+-
+ # CMake install location
+ "${_CMAKE_INSTALL_DIR}"
+ )
+@@ -47,24 +44,19 @@ endif()
+
+ # Non "standard" but common install prefixes
+ list(APPEND CMAKE_SYSTEM_PREFIX_PATH
+- /usr/X11R6
+- /usr/pkg
+- /opt
+ )
+
+ # List common include file locations not under the common prefixes.
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
+- # X11
+- /usr/include/X11
++ @libc_dev@/include
+ )
+
+ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
+- # X11
+- /usr/lib/X11
++ @libc_lib@/lib
+ )
+
+ list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64
++ @libc_lib@/lib
+ )
+
+ if(CMAKE_SYSROOT_COMPILE)
+@@ -77,15 +69,15 @@ endif()
+ # parsing the implicit directory information from compiler output.
+ set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+ set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+ set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT
+ ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES}
+- "${_cmake_sysroot_compile}/usr/include"
++ @libc_dev@/include
+ )
+
+ unset(_cmake_sysroot_compile)
+diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake
+index b9e2f17979..ab517cd4a7 100644
+--- a/Modules/Platform/WindowsPaths.cmake
++++ b/Modules/Platform/WindowsPaths.cmake
+@@ -70,7 +70,7 @@ endif()
+
+ if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
+ # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
+- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
++ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /)
+ endif()
+
+ list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
new file mode 100755
index 000000000000..0bb695615fce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -0,0 +1,178 @@
+addCMakeParams() {
+ addToSearchPath CMAKE_PREFIX_PATH $1
+}
+
+fixCmakeFiles() {
+ # Replace occurences of /usr and /opt by /var/empty.
+ echo "fixing cmake files..."
+ find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print |
+ while read fn; do
+ sed -e 's^/usr\([ /]\|$\)^/var/empty\1^g' -e 's^/opt\([ /]\|$\)^/var/empty\1^g' < "$fn" > "$fn.tmp"
+ mv "$fn.tmp" "$fn"
+ done
+}
+
+cmakeConfigurePhase() {
+ runHook preConfigure
+
+ export CTEST_OUTPUT_ON_FAILURE=1
+ if [ -n "${enableParallelChecking-1}" ]; then
+ export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES
+ fi
+
+ if [ -z "${dontFixCmake-}" ]; then
+ fixCmakeFiles .
+ fi
+
+ if [ -z "${dontUseCmakeBuildDir-}" ]; then
+ mkdir -p build
+ cd build
+ cmakeDir=${cmakeDir:-..}
+ fi
+
+ if [ -z "${dontAddPrefix-}" ]; then
+ cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags"
+ fi
+
+ # We should set the proper `CMAKE_SYSTEM_NAME`.
+ # http://www.cmake.org/Wiki/CMake_Cross_Compiling
+ #
+ # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and
+ # strip. Otherwise they are taken to be relative to the source root of the
+ # package being built.
+ cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags"
+ cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags"
+ cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags"
+ cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags"
+ cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags"
+
+ # on macOS we want to prefer Unix-style headers to Frameworks
+ # because we usually do not package the framework
+ cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags"
+
+ # on macOS i686 was only relevant for 10.5 or earlier.
+ cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags"
+
+ # we never want to use the global macOS SDK
+ cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags"
+
+ # correctly detect our clang compiler
+ cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags"
+
+ # This installs shared libraries with a fully-specified install
+ # name. By default, cmake installs shared libraries with just the
+ # basename as the install name, which means that, on Darwin, they
+ # can only be found by an executable at runtime if the shared
+ # libraries are in a system path or in the same directory as the
+ # executable. This flag makes the shared library accessible from its
+ # nix/store directory.
+ cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
+
+ # The docdir flag needs to include PROJECT_NAME as per GNU guidelines,
+ # try to extract it from CMakeLists.txt.
+ if [[ -z "$shareDocName" ]]; then
+ local cmakeLists="${cmakeDir}/CMakeLists.txt"
+ if [[ -f "$cmakeLists" ]]; then
+ local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)"
+ fi
+ # The argument sometimes contains garbage or variable interpolation.
+ # When that is the case, let’s fall back to the derivation name.
+ if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then
+ if [[ -n "${pname-}" ]]; then
+ shareDocName="$pname"
+ else
+ shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"
+ fi
+ fi
+ fi
+
+ # This ensures correct paths with multiple output derivations
+ # It requires the project to use variables from GNUInstallDirs module
+ # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
+ cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags"
+ cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags"
+
+ # Don’t build tests when doCheck = false
+ if [ -z "${doCheck-}" ]; then
+ cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags"
+ fi
+
+ # Avoid cmake resetting the rpath of binaries, on make install
+ # And build always Release, to ensure optimisation flags
+ cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} -DCMAKE_SKIP_BUILD_RPATH=ON $cmakeFlags"
+
+ # Disable user package registry to avoid potential side effects
+ # and unecessary attempts to access non-existent home folder
+ # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry
+ cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags"
+ cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags"
+ cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags"
+
+ if [ "${buildPhase-}" = ninjaBuildPhase ]; then
+ cmakeFlags="-GNinja $cmakeFlags"
+ fi
+
+ echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}"
+
+ cmake ${cmakeDir:-.} $cmakeFlags "${cmakeFlagsArray[@]}"
+
+ if ! [[ -v enableParallelBuilding ]]; then
+ enableParallelBuilding=1
+ echo "cmake: enabled parallel building"
+ fi
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseCmakeConfigure-}" -a -z "${configurePhase-}" ]; then
+ setOutputFlags=
+ configurePhase=cmakeConfigurePhase
+fi
+
+addEnvHooks "$targetOffset" addCMakeParams
+
+makeCmakeFindLibs(){
+ isystem_seen=
+ iframework_seen=
+ for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do
+ if test -n "$isystem_seen" && test -d "$flag"; then
+ isystem_seen=
+ export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag}"
+ elif test -n "$iframework_seen" && test -d "$flag"; then
+ iframework_seen=
+ export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag}"
+ else
+ isystem_seen=
+ iframework_seen=
+ case $flag in
+ -I*)
+ export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag:2}"
+ ;;
+ -L*)
+ export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH-}${CMAKE_LIBRARY_PATH:+:}${flag:2}"
+ ;;
+ -F*)
+ export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag:2}"
+ ;;
+ -isystem)
+ isystem_seen=1
+ ;;
+ -iframework)
+ iframework_seen=1
+ ;;
+ esac
+ fi
+ done
+}
+
+# not using setupHook, because it could be a setupHook adding additional
+# include flags to NIX_CFLAGS_COMPILE
+postHooks+=(makeCmakeFindLibs)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/colormake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/colormake/default.nix
new file mode 100644
index 000000000000..7eed88069557
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/colormake/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation {
+ pname = "colormake";
+ version = "2.1.0";
+
+ buildInputs = [ perl ];
+
+ src = fetchFromGitHub {
+ owner = "pagekite";
+ repo = "Colormake";
+ rev = "66544f40d";
+ sha256 = "8e714c5540305d169989d9387dbac47b8b9fb2cfb424af7bcd412bfe684dc6d7";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -fa colormake.pl colormake colormake-short clmake clmake-short $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Simple wrapper around make to colorize the output";
+ homepage = "https://bre.klaki.net/programs/colormake/";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ bhipple ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
new file mode 100644
index 000000000000..e09277e498d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -0,0 +1,103 @@
+{ lib, python3, fetchFromGitHub, git, pkgconfig }:
+
+# Note:
+# Conan has specific dependency demands; check
+# https://github.com/conan-io/conan/blob/master/conans/requirements.txt
+# https://github.com/conan-io/conan/blob/master/conans/requirements_server.txt
+# on the release branch/commit we're packaging.
+#
+# Two approaches are used here to deal with that:
+# Pinning the specific versions it wants in `newPython`,
+# and using `substituteInPlace conans/requirements.txt ...`
+# in `postPatch` to allow newer versions when we know
+# (e.g. from changelogs) that they are compatible.
+
+let newPython = python3.override {
+ packageOverrides = self: super: {
+ distro = super.distro.overridePythonAttrs (oldAttrs: rec {
+ version = "1.1.0";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "1vn1db2akw98ybnpns92qi11v94hydwp130s8753k6ikby95883j";
+ };
+ });
+ node-semver = super.node-semver.overridePythonAttrs (oldAttrs: rec {
+ version = "0.6.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0";
+ };
+ });
+ pluginbase = super.pluginbase.overridePythonAttrs (oldAttrs: rec {
+ version = "0.7";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "c0abe3218b86533cca287e7057a37481883c07acef7814b70583406938214cc8";
+ };
+ });
+ };
+};
+
+in newPython.pkgs.buildPythonApplication rec {
+ version = "1.27.0";
+ pname = "conan";
+
+ src = fetchFromGitHub {
+ owner = "conan-io";
+ repo = "conan";
+ rev = version;
+ sha256 = "0ncqs1p4g23fmzgdmwppgxr8w275h38hgjdzs456cgivz8xs9rjl";
+ };
+
+ propagatedBuildInputs = with newPython.pkgs; [
+ bottle
+ colorama
+ dateutil
+ deprecation
+ distro
+ fasteners
+ future
+ jinja2
+ node-semver
+ patch-ng
+ pluginbase
+ pygments
+ pyjwt
+ pylint # Not in `requirements.txt` but used in hooks, see https://github.com/conan-io/conan/pull/6152
+ pyyaml
+ requests
+ six
+ tqdm
+ urllib3
+ ];
+
+ checkInputs = [
+ pkgconfig
+ git
+ ] ++ (with newPython.pkgs; [
+ codecov
+ mock
+ nose
+ parameterized
+ webtest
+ ]);
+
+ # TODO: reenable tests now that we fetch tests w/ the source from GitHub.
+ # Not enabled right now due to time constraints/failing tests that I didn't have time to track down
+ doCheck = false;
+
+ postPatch = ''
+ substituteInPlace conans/requirements.txt \
+ --replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
+ --replace "deprecation>=2.0, <2.1" "deprecation" \
+ --replace "six>=1.10.0,<=1.14.0" "six"
+ '';
+
+ meta = with lib; {
+ homepage = "https://conan.io";
+ description = "Decentralized and portable C/C++ package manager";
+ license = licenses.mit;
+ maintainers = with maintainers; [ HaoZeke ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/doit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/doit/default.nix
new file mode 100644
index 000000000000..b906d64f0af9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/doit/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, python3Packages }:
+
+let
+
+ name = "doit";
+ version = "0.32.0";
+
+in python3Packages.buildPythonApplication {
+ name = "${name}-${version}";
+
+ src = fetchurl {
+ url = "mirror://pypi/d/${name}/${name}-${version}.tar.gz";
+ sha256 = "033m6y9763l81kgqd07rm62bngv3dsm3k9p28nwsn2qawl8h8g9j";
+ };
+
+ buildInputs = with python3Packages; [ mock pytest ];
+
+ propagatedBuildInputs = with python3Packages; [ cloudpickle ]
+ ++ stdenv.lib.optional stdenv.isLinux pyinotify
+ ++ stdenv.lib.optional stdenv.isDarwin macfsevents;
+
+ # Tests fail due to mysterious gdbm.open() resource temporarily
+ # unavailable errors.
+ doCheck = false;
+ checkPhase = "py.test";
+
+ meta = with stdenv.lib; {
+ homepage = "https://pydoit.org/";
+ description = "A task management & automation tool";
+ license = licenses.mit;
+ longDescription = ''
+ doit is a modern open-source build-tool written in python
+ designed to be simple to use and flexible to deal with complex
+ work-flows. It is specially suitable for building and managing
+ custom work-flows where there is no out-of-the-box solution
+ available.
+ '';
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile
new file mode 100644
index 000000000000..ddb13a65c165
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'drake'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile.lock
new file mode 100644
index 000000000000..466133010e04
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ comp_tree (1.1.3)
+ drake (0.9.2.0.3.1)
+ comp_tree (>= 1.1.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ drake
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/default.nix
new file mode 100644
index 000000000000..2f753c82521e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "drake";
+ gemdir = ./.;
+ exes = [ "drake" ];
+
+ passthru.updateScript = bundlerUpdateScript "drake";
+
+ meta = with lib; {
+ description = "A branch of Rake supporting automatic parallelizing of tasks";
+ homepage = "http://quix.github.io/rake/";
+ maintainers = with maintainers; [ romildo manveru nicknovitski ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/gemset.nix
new file mode 100644
index 000000000000..061ed5d973ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/drake/gemset.nix
@@ -0,0 +1,23 @@
+{
+ comp_tree = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dj9lkfxcczn67l1j12dcxswrfxxd1zgxa344zk6vqs2gwwhy9m9";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ drake = {
+ dependencies = ["comp_tree"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09gkmdshwdmdnkdxi03dv4rk1dip0wdv6dx14wscrmi0jyk86yag";
+ type = "gem";
+ };
+ version = "0.9.2.0.3.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
new file mode 100644
index 000000000000..44c91e936097
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/dub/default.nix
@@ -0,0 +1,75 @@
+{ stdenv, fetchFromGitHub, curl, dmd, libevent, rsync }:
+
+stdenv.mkDerivation rec {
+ pname = "dub";
+ version = "1.14.0";
+
+ enableParallelBuilding = true;
+
+ src = fetchFromGitHub {
+ owner = "dlang";
+ repo = "dub";
+ rev = "v${version}";
+ sha256 = "070kfkyrkr98y1hbhcf85842c0x7l95w1ambrkdgajpb6kcmpf84";
+ };
+
+ postUnpack = ''
+ patchShebangs .
+ '';
+
+ # Can be removed with https://github.com/dlang/dub/pull/1368
+ dubvar = "\\$DUB";
+ postPatch = ''
+ substituteInPlace test/fetchzip.sh \
+ --replace "dub remove" "\"${dubvar}\" remove"
+ '';
+
+ nativeBuildInputs = [ dmd libevent rsync ];
+ buildInputs = [ curl ];
+
+ buildPhase = ''
+ export DMD=${dmd.out}/bin/dmd
+ ./build.sh
+ '';
+
+ doCheck = !stdenv.isDarwin;
+
+ checkPhase = ''
+ export DUB=$NIX_BUILD_TOP/source/bin/dub
+ export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
+ export DC=${dmd.out}/bin/dmd
+ export HOME=$TMP
+
+ rm -rf test/issue502-root-import
+ rm test/issue990-download-optional-selected.sh
+ rm test/timeout.sh
+ rm test/issue674-concurrent-dub.sh
+ rm test/issue672-upgrade-optional.sh
+ rm test/issue1574-addcommand.sh
+ rm test/issue1524-maven-upgrade-dependency-tree.sh
+ rm test/issue1416-maven-repo-pkg-supplier.sh
+ rm test/issue1037-better-dependency-messages.sh
+ rm test/interactive-remove.sh
+ rm test/fetchzip.sh
+ rm test/feat663-search.sh
+ rm test/ddox.sh
+ rm test/0-init-multi.sh
+ rm test/0-init-multi-json.sh
+
+ ./test/run-unittest.sh
+ '';
+
+ installPhase = ''
+ mkdir $out
+ mkdir $out/bin
+ cp bin/dub $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Package and build manager for D applications and libraries";
+ homepage = "https://code.dlang.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ThomasMader ];
+ platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch
new file mode 100644
index 000000000000..86768d4611e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch
@@ -0,0 +1,802 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..4ab2c17
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,796 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ahash"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "bigbro"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3eaac07a3e62cd31e2102ca97c7fdf20002893ba2a396d29ea4710d2415cdce5"
++dependencies = [
++ "libc",
++ "seccomp-droundy",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cc"
++version = "1.0.59"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "crude-profiler"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9389510ac716b6ace8c4b635420cf023e12c81b61e933bfef06639142f149ecd"
++dependencies = [
++ "lazy_static 0.2.11",
++]
++
++[[package]]
++name = "ctrlc"
++version = "3.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0b676fa23f995faf587496dcd1c80fead847ed58d2da52ac1caca9a72790dd2"
++dependencies = [
++ "nix",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "either"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f"
++
++[[package]]
++name = "env_logger"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++dependencies = [
++ "log",
++ "regex",
++]
++
++[[package]]
++name = "fac"
++version = "0.5.3"
++dependencies = [
++ "atty",
++ "bigbro",
++ "clap",
++ "crude-profiler",
++ "ctrlc",
++ "git-version",
++ "internment",
++ "lazy_static 1.4.0",
++ "libc",
++ "metrohash",
++ "notify",
++ "num_cpus",
++ "pathdiff",
++ "quickcheck",
++ "termcolor",
++ "tinyset",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "fsevent"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++dependencies = [
++ "bitflags",
++ "fsevent-sys",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++dependencies = [
++ "libc",
++]
++
++[[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 = "gcc"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
++
++[[package]]
++name = "getrandom"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "git-version"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94918e83f1e01dedc2e361d00ce9487b14c58c7f40bab148026fa39d42cb41e2"
++dependencies = [
++ "git-version-macro",
++ "proc-macro-hack",
++]
++
++[[package]]
++name = "git-version-macro"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34a97a52fdee1870a34fa6e4b77570cba531b27d1838874fef4429a791a3d657"
++dependencies = [
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "hashbrown"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
++dependencies = [
++ "ahash",
++ "autocfg",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f"
++dependencies = [
++ "bitflags",
++ "inotify-sys",
++ "libc",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "internment"
++version = "0.3.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e5cba670f596a69e619cb796bcf609cb32c0ba4415d1e809104b8b832130d79"
++dependencies = [
++ "hashbrown",
++ "lazy_static 1.4.0",
++ "serde",
++ "state",
++ "tinyset",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[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 = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "lazycell"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
++
++[[package]]
++name = "libc"
++version = "0.2.77"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
++
++[[package]]
++name = "log"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++
++[[package]]
++name = "metrohash"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c"
++
++[[package]]
++name = "mio"
++version = "0.6.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
++dependencies = [
++ "cfg-if",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
++]
++
++[[package]]
++name = "mio-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++dependencies = [
++ "lazycell",
++ "log",
++ "mio",
++ "slab",
++]
++
++[[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.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[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 = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++dependencies = [
++ "bitflags",
++ "filetime",
++ "fsevent",
++ "fsevent-sys",
++ "inotify",
++ "libc",
++ "mio",
++ "mio-extras",
++ "walkdir",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "pathdiff"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quickcheck"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
++dependencies = [
++ "env_logger",
++ "log",
++ "rand",
++ "rand_core",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++dependencies = [
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "regex"
++version = "1.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local 1.0.1",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "seccomp-droundy"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4b762ab71c6bf1a9a3e0b21e8600b73b088f2a6562e03cd77b2826821fae5f8"
++dependencies = [
++ "libc",
++ "seccomp-droundy-sys",
++]
++
++[[package]]
++name = "seccomp-droundy-sys"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "200976cc4ff22cd8b9c6c23681fe6aa89a12aa3637c86dd16e44c05d7c373488"
++dependencies = [
++ "gcc",
++ "libc",
++ "pkg-config",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.115"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++
++[[package]]
++name = "state"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7345c971d1ef21ffdbd103a75990a15eb03604fc8b8852ca8cb418ee1a099028"
++dependencies = [
++ "thread_local 0.3.3",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "syn"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thread-id"
++version = "3.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
++dependencies = [
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "thread_local"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c85048c6260d17cf486ceae3282d9fb6b90be220bf5b28c400f5485ffc29f0c7"
++dependencies = [
++ "thread-id",
++ "unreachable",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static 1.4.0",
++]
++
++[[package]]
++name = "tinyset"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "784f540960a63144d63992caf430ed87e39d920f2c474cb8ac586ff31fb861fc"
++dependencies = [
++ "itertools",
++ "rand",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "unreachable"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
++dependencies = [
++ "void",
++]
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "void"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++dependencies = [
++ "same-file",
++ "winapi 0.3.9",
++ "winapi-util",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[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.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++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-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi 0.3.9",
++]
++
++[[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",
++]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
new file mode 100644
index 000000000000..8c41eb3ac51a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, git, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "fac-build";
+ version = "0.5.3";
+
+ src = fetchFromGitHub {
+ owner = "droundy";
+ repo = "fac";
+ rev = version;
+ sha256 = "1gifrlb31jy8633rnhny58ccp3wlmd338129c6sh0h1a38vkmsxk";
+ };
+
+ # workaround for missing Cargo.lock file
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ cargoSha256 = "0hjfq61y1ikdcajr2k514k7fad2zxbwq7yb5nk1wx38f1524709q";
+
+ # fac includes a unit test called ls_files_works which assumes it's
+ # running in a git repo. Nix's sandbox runs cargo build outside git,
+ # so this test won't work.
+ checkFlagsArray = [ "--skip=ls_files_works" ];
+
+ # fac calls git at runtime, expecting it to be in the PATH,
+ # so we need to patch it to call git by absolute path instead.
+ postPatch = ''
+ substituteInPlace src/git.rs \
+ --replace 'std::process::Command::new("git")' \
+ 'std::process::Command::new("${git}/bin/git")'
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ A build system that uses ptrace to handle dependencies automatically
+ '';
+ longDescription = ''
+ Fac is a general-purpose build system inspired by make that utilizes
+ ptrace to ensure that all dependences are enumerated and that all
+ source files are added to a (git) repo. An important feature of fac
+ is that it automatically handles dependencies, rather than either
+ complaining about them or giving an incorrect build. Currently, fac
+ only runs on linux systems, but on those systems it is incredibly
+ easy to use!
+ '';
+ homepage = "https://physics.oregonstate.edu/~roundyd/fac";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.dpercy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix
new file mode 100644
index 000000000000..599e10af1a9a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, lib, fetchgit, darwin, writeText
+, ninja, python3
+}:
+
+let
+ # Note: Please use the recommended version for Chromium, e.g.:
+ # https://git.archlinux.org/svntogit/packages.git/tree/trunk/chromium-gn-version.sh?h=packages/gn
+ rev = "fd3d768bcfd44a8d9639fe278581bd9851d0ce3a";
+ revNum = "1718"; # git describe HEAD --match initial-commit | cut -d- -f3
+ version = "2020-03-09";
+ sha256 = "1asc14y8by7qcn10vbk467hvx93s30pif8r0brissl0sihsaqazr";
+
+ revShort = builtins.substring 0 7 rev;
+ lastCommitPosition = writeText "last_commit_position.h" ''
+ #ifndef OUT_LAST_COMMIT_POSITION_H_
+ #define OUT_LAST_COMMIT_POSITION_H_
+
+ #define LAST_COMMIT_POSITION_NUM ${revNum}
+ #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
+
+ #endif // OUT_LAST_COMMIT_POSITION_H_
+ '';
+
+in stdenv.mkDerivation {
+ pname = "gn-unstable";
+ inherit version;
+
+ src = fetchgit {
+ # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
+ url = "https://gn.googlesource.com/gn";
+ inherit rev sha256;
+ };
+
+ nativeBuildInputs = [ ninja python3 ];
+ buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
+ libobjc
+ cctools
+
+ # frameworks
+ ApplicationServices
+ Foundation
+ AppKit
+ ]);
+
+ buildPhase = ''
+ python build/gen.py --no-last-commit-position
+ ln -s ${lastCommitPosition} out/last_commit_position.h
+ ninja -j $NIX_BUILD_CORES -C out gn
+ '';
+
+ installPhase = ''
+ install -vD out/gn "$out/bin/gn"
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ meta = with lib; {
+ description = "A meta-build system that generates build files for Ninja";
+ homepage = "https://gn.googlesource.com/gn";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ stesie matthewbauer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/setup-hook.sh
new file mode 100644
index 000000000000..850f18948cad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gn/setup-hook.sh
@@ -0,0 +1,14 @@
+gnConfigurePhase() {
+ runHook preConfigure
+
+ echo "gn flags: $gnFlags ${gnFlagsArray[@]}"
+
+ gn gen out/Release --args="$gnFlags ${gnFlagsArray[@]}"
+ cd out/Release/
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseGnConfigure-}" -a -z "${configurePhase-}" ]; then
+ configurePhase=gnConfigurePhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
new file mode 100644
index 000000000000..a83281c4e961
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchurl, guileSupport ? false, pkgconfig ? null , guile ? null }:
+
+assert guileSupport -> ( pkgconfig != null && guile != null );
+
+let
+ version = "4.2.1";
+in
+stdenv.mkDerivation {
+ pname = "gnumake";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://gnu/make/make-${version}.tar.bz2";
+ sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn";
+ };
+
+ patchFlags = [ "-p0" ];
+ patches = [
+ # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+ # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+ # included Makefiles, don't look in /usr/include and friends.
+ ./impure-dirs.patch
+ ./pselect.patch
+ # Fix support for glibc 2.27's glob, inspired by http://www.linuxfromscratch.org/lfs/view/8.2/chapter05/make.html
+ ./glibc-2.27-glob.patch
+ ];
+
+ nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
+ buildInputs = stdenv.lib.optionals guileSupport [ guile ];
+
+ configureFlags = stdenv.lib.optional guileSupport "--with-guile"
+
+ # Make uses this test to decide whether it should keep track of
+ # subseconds. Apple made this possible with APFS and macOS 10.13.
+ # However, we still support macOS 10.11 and 10.12. Binaries built
+ # in Nixpkgs will be unable to use futimens to set mtime less than
+ # a second. So, tell Make to ignore nanoseconds in mtime here by
+ # overriding the autoconf test for the struct.
+ # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
+ ++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
+
+ outputs = [ "out" "man" "info" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gnu.org/software/make/";
+ description = "A tool to control the generation of non-source files from sources";
+ license = licenses.gpl3Plus;
+
+ longDescription = ''
+ Make is a tool which controls the generation of executables and
+ other non-source files of a program from the program's source files.
+
+ Make gets its knowledge of how to build your program from a file
+ called the makefile, which lists each of the non-source files and
+ how to compute it from other files. When you write a program, you
+ should write a makefile for it, so that it is possible to use Make
+ to build and install the program.
+ '';
+
+ platforms = platforms.all;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch
new file mode 100644
index 000000000000..186212d0d298
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/glibc-2.27-glob.patch
@@ -0,0 +1,32 @@
+diff -Naur glob/glob.c glob/glob.c
+--- glob/glob.c 2013-10-20 13:14:38.000000000 -0400
++++ glob/glob.c 2018-03-16 14:32:38.483496170 -0400
+@@ -208,28 +208,9 @@
+ #endif /* __GNU_LIBRARY__ || __DJGPP__ */
+
+
+-#if !defined __alloca && !defined __GNU_LIBRARY__
+-
+-# ifdef __GNUC__
+-# undef alloca
+-# define alloca(n) __builtin_alloca (n)
+-# else /* Not GCC. */
+-# ifdef HAVE_ALLOCA_H
+ # include <alloca.h>
+-# else /* Not HAVE_ALLOCA_H. */
+-# ifndef _AIX
+-# ifdef WINDOWS32
+-# include <malloc.h>
+-# else
+-extern char *alloca ();
+-# endif /* WINDOWS32 */
+-# endif /* Not _AIX. */
+-# endif /* sparc or HAVE_ALLOCA_H. */
+-# endif /* GCC. */
+-
+ # define __alloca alloca
+
+-#endif
+
+ #ifndef __GNU_LIBRARY__
+ # define __stat stat
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs.patch
new file mode 100644
index 000000000000..f6646f1d0126
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs.patch
@@ -0,0 +1,34 @@
+diff -rc read.c read.c
+*** read.c 2006-03-17 15:24:20.000000000 +0100
+--- read.c 2007-05-24 17:16:31.000000000 +0200
+***************
+*** 99,107 ****
+--- 99,109 ----
+ #endif
+ INCLUDEDIR,
+ #ifndef _AMIGA
++ #if 0
+ "/usr/gnu/include",
+ "/usr/local/include",
+ "/usr/include",
++ #endif
+ #endif
+ 0
+ };
+diff -rc reremake.c
+*** remake.c 2006-03-20 03:36:37.000000000 +0100
+--- remake.c 2007-05-24 17:06:54.000000000 +0200
+***************
+*** 1452,1460 ****
+--- 1452,1462 ----
+ static char *dirs[] =
+ {
+ #ifndef _AMIGA
++ #if 0
+ "/lib",
+ "/usr/lib",
+ #endif
++ #endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
+ * This is completely up to the user at product install time. Just define
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch
new file mode 100644
index 000000000000..5a03acb2f7ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/4.2/pselect.patch
@@ -0,0 +1,170 @@
+From b552b05251980f693c729e251f93f5225b400714 Mon Sep 17 00:00:00 2001
+From: Paul Smith <psmith@gnu.org>
+Date: Sat, 3 Jun 2017 16:20:51 -0400
+Subject: [SV 51159] Use a non-blocking read with pselect to avoid hangs.
+
+* posixos.c (set_blocking): Set blocking on a file descriptor.
+(jobserver_setup): Set non-blocking on the jobserver read side.
+(jobserver_parse_auth): Ditto.
+(jobserver_acquire_all): Set blocking to avoid a busy-wait loop.
+(jobserver_acquire): If the non-blocking read() returns without
+taking a token then try again.
+---
+ posixos.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++-----------------
+ 1 file changed, 71 insertions(+), 26 deletions(-)
+
+diff --git posixos.c posixos.c
+index e642d7f..dbafa51 100644
+--- posixos.c
++++ posixos.c
+@@ -62,6 +62,24 @@ make_job_rfd (void)
+ #endif
+ }
+
++static void
++set_blocking (int fd, int blocking)
++{
++ // If we're not using pselect() don't change the blocking
++#ifdef HAVE_PSELECT
++ int flags;
++ EINTRLOOP (flags, fcntl (fd, F_GETFL));
++ if (flags >= 0)
++ {
++ int r;
++ flags = blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
++ EINTRLOOP (r, fcntl (fd, F_SETFL, flags));
++ if (r < 0)
++ pfatal_with_name ("fcntl(O_NONBLOCK)");
++ }
++#endif
++}
++
+ unsigned int
+ jobserver_setup (int slots)
+ {
+@@ -86,6 +104,9 @@ jobserver_setup (int slots)
+ pfatal_with_name (_("init jobserver pipe"));
+ }
+
++ /* When using pselect() we want the read to be non-blocking. */
++ set_blocking (job_fds[0], 0);
++
+ return 1;
+ }
+
+@@ -121,6 +142,9 @@ jobserver_parse_auth (const char *auth)
+ return 0;
+ }
+
++ /* When using pselect() we want the read to be non-blocking. */
++ set_blocking (job_fds[0], 0);
++
+ return 1;
+ }
+
+@@ -169,7 +193,10 @@ jobserver_acquire_all (void)
+ {
+ unsigned int tokens = 0;
+
+- /* Close the write side, so the read() won't hang. */
++ /* Use blocking reads to wait for all outstanding jobs. */
++ set_blocking (job_fds[0], 1);
++
++ /* Close the write side, so the read() won't hang forever. */
+ close (job_fds[1]);
+ job_fds[1] = -1;
+
+@@ -236,18 +263,12 @@ jobserver_pre_acquire (void)
+ unsigned int
+ jobserver_acquire (int timeout)
+ {
+- sigset_t empty;
+- fd_set readfds;
+ struct timespec spec;
+ struct timespec *specp = NULL;
+- int r;
+- char intake;
++ sigset_t empty;
+
+ sigemptyset (&empty);
+
+- FD_ZERO (&readfds);
+- FD_SET (job_fds[0], &readfds);
+-
+ if (timeout)
+ {
+ /* Alarm after one second (is this too granular?) */
+@@ -256,28 +277,52 @@ jobserver_acquire (int timeout)
+ specp = &spec;
+ }
+
+- r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
+-
+- if (r == -1)
++ while (1)
+ {
+- /* Better be SIGCHLD. */
+- if (errno != EINTR)
+- pfatal_with_name (_("pselect jobs pipe"));
+- return 0;
+- }
++ fd_set readfds;
++ int r;
++ char intake;
+
+- if (r == 0)
+- /* Timeout. */
+- return 0;
++ FD_ZERO (&readfds);
++ FD_SET (job_fds[0], &readfds);
+
+- /* The read FD is ready: read it! */
+- EINTRLOOP (r, read (job_fds[0], &intake, 1));
+- if (r < 0)
+- pfatal_with_name (_("read jobs pipe"));
++ r = pselect (job_fds[0]+1, &readfds, NULL, NULL, specp, &empty);
++ if (r < 0)
++ switch (errno)
++ {
++ case EINTR:
++ /* SIGCHLD will show up as an EINTR. */
++ return 0;
++
++ case EBADF:
++ /* Someone closed the jobs pipe.
++ That shouldn't happen but if it does we're done. */
++ O (fatal, NILF, _("job server shut down"));
+
+- /* What does it mean if read() returns 0? It shouldn't happen because only
+- the master make can reap all the tokens and close the write side...?? */
+- return r > 0;
++ default:
++ pfatal_with_name (_("pselect jobs pipe"));
++ }
++
++ if (r == 0)
++ /* Timeout. */
++ return 0;
++
++ /* The read FD is ready: read it! This is non-blocking. */
++ EINTRLOOP (r, read (job_fds[0], &intake, 1));
++
++ if (r < 0)
++ {
++ /* Someone sniped our token! Try again. */
++ if (errno == EAGAIN)
++ continue;
++
++ pfatal_with_name (_("read jobs pipe"));
++ }
++
++ /* read() should never return 0: only the master make can reap all the
++ tokens and close the write side...?? */
++ return r > 0;
++ }
+ }
+
+ #else
+--
+cgit v1.0-41-gc330
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix
new file mode 100644
index 000000000000..f01f38ecd233
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, guileSupport ? false, pkgconfig ? null , guile ? null }:
+
+assert guileSupport -> ( pkgconfig != null && guile != null );
+
+let
+ version = "4.3";
+in
+stdenv.mkDerivation {
+ pname = "gnumake";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://gnu/make/make-${version}.tar.gz";
+ sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0";
+ };
+
+ patches = [
+ # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+ # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+ # included Makefiles, don't look in /usr/include and friends.
+ ./impure-dirs.patch
+ ];
+
+ nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
+ buildInputs = stdenv.lib.optionals guileSupport [ guile ];
+
+ configureFlags = stdenv.lib.optional guileSupport "--with-guile"
+
+ # Make uses this test to decide whether it should keep track of
+ # subseconds. Apple made this possible with APFS and macOS 10.13.
+ # However, we still support macOS 10.11 and 10.12. Binaries built
+ # in Nixpkgs will be unable to use futimens to set mtime less than
+ # a second. So, tell Make to ignore nanoseconds in mtime here by
+ # overriding the autoconf test for the struct.
+ # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
+ ++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
+
+ outputs = [ "out" "man" "info" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.gnu.org/software/make/";
+ description = "A tool to control the generation of non-source files from sources";
+ license = licenses.gpl3Plus;
+
+ longDescription = ''
+ Make is a tool which controls the generation of executables and
+ other non-source files of a program from the program's source files.
+
+ Make gets its knowledge of how to build your program from a file
+ called the makefile, which lists each of the non-source files and
+ how to compute it from other files. When you write a program, you
+ should write a makefile for it, so that it is possible to use Make
+ to build and install the program.
+ '';
+
+ platforms = platforms.all;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
new file mode 100644
index 000000000000..6c7d9d2463c3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
@@ -0,0 +1,25 @@
+diff -Naur a/src/read.c b/src/read.c
+--- a/src/read.c
++++ b/src/read.c
+@@ -109,9 +109,6 @@
+ #endif
+ INCLUDEDIR,
+ #ifndef _AMIGA
+- "/usr/gnu/include",
+- "/usr/local/include",
+- "/usr/include",
+ #endif
+ 0
+ };
+diff -Naur a/src/remake.c b/src/remake.c
+--- a/src/remake.c
++++ b/src/remake.c
+@@ -1601,8 +1601,6 @@
+ static const char *dirs[] =
+ {
+ #ifndef _AMIGA
+- "/lib",
+- "/usr/lib",
+ #endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
new file mode 100644
index 000000000000..73e9bc7b5601
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchurl, unzip, jdk, java ? jdk, makeWrapper }:
+
+rec {
+ gradleGen = {name, src, nativeVersion} : stdenv.mkDerivation {
+ inherit name src nativeVersion;
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -pv $out/lib/gradle/
+ cp -rv lib/ $out/lib/gradle/
+
+ gradle_launcher_jar=$(echo $out/lib/gradle/lib/gradle-launcher-*.jar)
+ test -f $gradle_launcher_jar
+ makeWrapper ${java}/bin/java $out/bin/gradle \
+ --set JAVA_HOME ${java} \
+ --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain"
+ '';
+
+ fixupPhase = if (!stdenv.isLinux) then ":" else
+ let arch = if stdenv.is64bit then "amd64" else "i386"; in ''
+ mkdir patching
+ pushd patching
+ jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-${nativeVersion}.jar
+ patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64" net/rubygrapefruit/platform/linux-${arch}/libnative-platform.so
+ jar cf native-platform-linux-${arch}-${nativeVersion}.jar .
+ mv native-platform-linux-${arch}-${nativeVersion}.jar $out/lib/gradle/lib/
+ popd
+
+ # The scanner doesn't pick up the runtime dependency in the jar.
+ # Manually add a reference where it will be found.
+ mkdir $out/nix-support
+ echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies
+ '';
+
+ buildInputs = [ unzip java makeWrapper ];
+
+ meta = {
+ description = "Enterprise-grade build system";
+ longDescription = ''
+ Gradle is a build system which offers you ease, power and freedom.
+ You can choose the balance for yourself. It has powerful multi-project
+ build support. It has a layer on top of Ivy that provides a
+ build-by-convention integration for Ivy. It gives you always the choice
+ between the flexibility of Ant and the convenience of a
+ build-by-convention behavior.
+ '';
+ homepage = "http://www.gradle.org/";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.unix;
+ };
+ };
+
+ gradle_latest = gradle_6_6;
+
+ gradle_6_6 = gradleGen rec {
+ name = "gradle-6.6";
+ nativeVersion = "0.22-milestone-4";
+
+ src = fetchurl {
+ url = "https://services.gradle.org/distributions/${name}-bin.zip";
+ sha256 = "09a0fnz6fn8yaxm3q3iwyjm3nnaz7k8i1xlpc7sm414py043by76";
+ };
+ };
+
+ gradle_5_6 = gradleGen rec {
+ name = "gradle-5.6.4";
+ nativeVersion = "0.18";
+
+ src = fetchurl {
+ url = "https://services.gradle.org/distributions/${name}-bin.zip";
+ sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
+ };
+ };
+
+ gradle_4_10 = gradleGen rec {
+ name = "gradle-4.10.3";
+ nativeVersion = "0.14";
+
+ src = fetchurl {
+ url = "https://services.gradle.org/distributions/${name}-bin.zip";
+ sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix
new file mode 100644
index 000000000000..30c4d4ec4de0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/gup/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, nix-update-source, lib, python
+, which, runtimeShell, pychecker ? null }:
+stdenv.mkDerivation rec {
+ version = "0.7.0";
+ src = fetchFromGitHub {
+ owner = "timbertson";
+ repo = "gup";
+ rev = "version-0.7.0";
+ sha256 = "1pwnmlq2pgkkln9sgz4wlb9dqlqw83bkf105qljnlvggc21zm3pv";
+ };
+ pname = "gup";
+ buildInputs = lib.remove null [ python which pychecker ];
+ SKIP_PYCHECKER = pychecker == null;
+ buildPhase = "make python";
+ installPhase = ''
+ mkdir $out
+ cp -r python/bin $out/bin
+ '';
+ passthru.updateScript = ''
+ #!${runtimeShell}
+ set -e
+ echo
+ cd ${toString ./.}
+ ${nix-update-source}/bin/nix-update-source \
+ --prompt version \
+ --replace-attr version \
+ --set owner timbertson \
+ --set repo gup \
+ --set type fetchFromGitHub \
+ --set rev 'version-{version}' \
+ --modify-nix default.nix
+ '';
+ meta = {
+ inherit (src.meta) homepage;
+ description = "A better make, inspired by djb's redo";
+ license = stdenv.lib.licenses.lgpl2Plus;
+ maintainers = [ stdenv.lib.maintainers.timbertson ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/icmake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/icmake/default.nix
new file mode 100644
index 000000000000..89e2b8d0cc6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/icmake/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitLab, makeWrapper, gcc, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "icmake";
+ version = "9.03.01";
+
+ src = fetchFromGitLab {
+ sha256 = "05r0a69w0hv2qhjpb2bxd0lmp2vv5r2d4iggg6ly4miam0i318jy";
+ rev = version;
+ repo = "icmake";
+ owner = "fbb-git";
+ };
+
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */icmake)
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ gcc ];
+
+ preConfigure = ''
+ patchShebangs ./
+ substituteInPlace INSTALL.im --replace "usr/" ""
+ '';
+
+ buildPhase = ''
+ ./icm_prepare $out
+ ./icm_bootstrap x
+ '';
+
+ installPhase = ''
+ ./icm_install all /
+
+ wrapProgram $out/bin/icmbuild \
+ --prefix PATH : ${ncurses}/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A program maintenance (make) utility using a C-like grammar";
+ homepage = "https://fbb-git.gitlab.io/icmake/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix
new file mode 100644
index 000000000000..7d7502fad4b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/jam/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, yacc }:
+
+stdenv.mkDerivation rec {
+ name = "jam-2.6.1";
+
+ src = fetchurl {
+ url = "https://swarm.workshop.perforce.com/projects/perforce_software-jam/download/main/${name}.tar";
+ sha256 = "19xkvkpycxfsncxvin6yqrql3x3z9ypc1j8kzls5k659q4kv5rmc";
+ };
+
+ nativeBuildInputs = [ yacc ];
+
+ preConfigure = ''
+ unset AR
+ '';
+
+ buildPhase = ''
+ make jam0
+ ./jam0 -j$NIX_BUILD_CORES -sBINDIR=$out/bin install
+ '';
+
+ installPhase = ''
+ mkdir -p $out/doc/jam
+ cp *.html $out/doc/jam
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.perforce.com/resources/documentation/jam";
+ license = licenses.free;
+ description = "Just Another Make";
+ maintainers = with maintainers; [ orivej ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix
new file mode 100644
index 000000000000..a7fced4482be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "kati-unstable";
+ version = "2019-09-23";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = "kati";
+ rev = "9da3296746a0cd55b38ebebf91e7f57105a4c36f";
+ sha256 = "0s5dfhgpcbx12b1fqmm8p0jpvrhgrnl9qywv1ksbwhw3pfp7j866";
+ };
+
+ patches = [ ./version.patch ];
+
+ installPhase = ''
+ install -D ckati $out/bin/ckati
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An experimental GNU make clone";
+ homepage = "https://github.com/google/kati";
+ platforms = platforms.all;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ danielfullmer ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/version.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/version.patch
new file mode 100644
index 000000000000..1821ac6bbb73
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/kati/version.patch
@@ -0,0 +1,19 @@
+diff --git a/Makefile.ckati b/Makefile.ckati
+index e4067bb..15518f3 100644
+--- a/Makefile.ckati
++++ b/Makefile.ckati
+@@ -102,14 +102,8 @@ $(KATI_CXX_TEST_EXES): $(KATI_BIN_PATH)/%: $(KATI_INTERMEDIATES_PATH)/%.o
+ $(KATI_LD) $^ -o $@ $(KATI_LIBS)
+
+ # Rule to generate version.cc
+-KATI_GIT_DIR := $(shell git -C $(KATI_SRC_PATH) rev-parse --show-toplevel)
+-ifneq ($(KATI_GIT_DIR),)
+-KATI_VERSION_DEPS := $(KATI_GIT_DIR)/.git/HEAD $(KATI_GIT_DIR)/.git/index
+-KATI_VERSION := $(shell git -C $(KATI_GIT_DIR) rev-parse HEAD)
+-else
+ KATI_VERSION_DEPS :=
+ KATI_VERSION := unknown
+-endif
+ $(KATI_INTERMEDIATES_PATH)/version.cc: $(KATI_VERSION_DEPS)
+ @mkdir -p $(dir $@)
+ echo '// +build ignore' > $@
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
new file mode 100644
index 000000000000..713f499ce2b2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/leiningen/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, makeWrapper
+, coreutils, jdk, rlwrap, gnupg }:
+
+stdenv.mkDerivation rec {
+ pname = "leiningen";
+ version = "2.9.1";
+
+ src = fetchurl {
+ url = "https://raw.github.com/technomancy/leiningen/${version}/bin/lein-pkg";
+ sha256 = "1h0gpzpr7xk6hvmrrq41bcp2k9aai348baf8ad9bxvci01n4zb12";
+ };
+
+ jarsrc = fetchurl {
+ # NOTE: This is actually a .jar, Github has issues
+ url = "https://github.com/technomancy/leiningen/releases/download/${version}/${pname}-${version}-standalone.zip";
+ sha256 = "1y2mva5s2w2szzn1b9rhz0dvkffls4ravii677ybcf2w9wd86z7a";
+ };
+
+ JARNAME = "${pname}-${version}-standalone.jar";
+
+ dontUnpack = true;
+
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = [ jdk ];
+
+ # the jar is not in share/java, because it's a standalone jar and should
+ # never be picked up by set-java-classpath.sh
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share
+ cp -v $src $out/bin/lein
+ cp -v $jarsrc $out/share/$JARNAME
+ '';
+
+ fixupPhase = ''
+ chmod +x $out/bin/lein
+ patchShebangs $out/bin/lein
+ substituteInPlace $out/bin/lein \
+ --replace 'LEIN_JAR=/usr/share/java/leiningen-$LEIN_VERSION-standalone.jar' "LEIN_JAR=$out/share/$JARNAME"
+ wrapProgram $out/bin/lein \
+ --prefix PATH ":" "${stdenv.lib.makeBinPath [ rlwrap coreutils ]}" \
+ --set LEIN_GPG ${gnupg}/bin/gpg \
+ --set JAVA_CMD ${jdk}/bin/java
+ '';
+
+ meta = {
+ homepage = "https://leiningen.org/";
+ description = "Project automation for Clojure";
+ license = stdenv.lib.licenses.epl10;
+ platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
new file mode 100644
index 000000000000..6c9d8bfc8385
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "mage";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "magefile";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0c77xgz2bz4j9sh9v7f49iqyamc4lvvldcmn6v50hk98s9193gbf";
+ };
+
+ vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+ doCheck = false;
+
+ buildFlagsArray = [
+ "-ldflags="
+ "-X github.com/magefile/mage/mage.commitHash=v${version}"
+ "-X github.com/magefile/mage/mage.gitTag=v${version}"
+ "-X github.com/magefile/mage/mage.timestamp=1970-01-01T00:00:00Z"
+ ];
+
+ meta = with lib; {
+ description = "A Make/Rake-like Build Tool Using Go";
+ homepage = "https://magefile.org/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ swdunlop ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
new file mode 100644
index 000000000000..e5ac95d0b9dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
@@ -0,0 +1,19 @@
+--- a/mesonbuild/coredata.py
++++ b/mesonbuild/coredata.py
+@@ -491,7 +491,6 @@ class CoreData:
+ return value
+ if option.endswith('dir') and value.is_absolute() and \
+ option not in builtin_dir_noprefix_options:
+- # Value must be a subdir of the prefix
+ # commonpath will always return a path in the native format, so we
+ # must use pathlib.PurePath to do the same conversion before
+ # comparing.
+@@ -503,7 +502,7 @@ class CoreData:
+ try:
+ value = value.relative_to(prefix)
+ except ValueError:
+- raise MesonException(msg.format(option, value, prefix))
++ pass
+ if '..' in str(value):
+ raise MesonException(msg.format(option, value, prefix))
+ return value.as_posix()
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
new file mode 100644
index 000000000000..f1e3c76e8b53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
@@ -0,0 +1,20 @@
+diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
+index 4176b9a03..faaabf616 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -336,6 +336,15 @@ class Elf(DataSizes):
+ if not new_rpath:
+ self.remove_rpath_entry(entrynum)
+ else:
++ # Clear old rpath to avoid stale references,
++ # not heeding the warning above about de-duplication
++ # since it does not seem to cause issues for us
++ # and not doing so trips up Nix’s reference checker.
++ # See https://github.com/NixOS/nixpkgs/pull/46020
++ # and https://github.com/NixOS/nixpkgs/issues/95163
++ self.bf.seek(rp_off)
++ self.bf.write(b'\0'*len(old_rpath))
++
+ self.bf.seek(rp_off)
+ self.bf.write(new_rpath)
+ self.bf.write(b'\0')
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
new file mode 100644
index 000000000000..8421fb7d70a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
@@ -0,0 +1,87 @@
+{ lib
+, python3
+, stdenv
+, writeTextDir
+, substituteAll
+, pkgsHostHost
+, fetchpatch
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "meson";
+ version = "0.55.3";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "19cjy24mfaswxyvqmns6rd7hx05ybqb663zlgklspfr8l4jjmvbb";
+ };
+
+ patches = [
+ # Upstream insists on not allowing bindir and other dir options
+ # outside of prefix for some reason:
+ # https://github.com/mesonbuild/meson/issues/2561
+ # We remove the check so multiple outputs can work sanely.
+ ./allow-dirs-outside-of-prefix.patch
+
+ # Meson is currently inspecting fewer variables than autoconf does, which
+ # makes it harder for us to use setup hooks, etc. Taken from
+ # https://github.com/mesonbuild/meson/pull/6827
+ ./more-env-vars.patch
+
+ # Unlike libtool, vanilla Meson does not pass any information
+ # about the path library will be installed to to g-ir-scanner,
+ # breaking the GIR when path other than ${!outputLib}/lib is used.
+ # We patch Meson to add a --fallback-library-path argument with
+ # library install_dir to g-ir-scanner.
+ ./gir-fallback-path.patch
+
+ # In common distributions, RPATH is only needed for internal libraries so
+ # meson removes everything else. With Nix, the locations of libraries
+ # are not as predictable, therefore we need to keep them in the RPATH.
+ # At the moment we are keeping the paths starting with /nix/store.
+ # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
+ (substituteAll {
+ src = ./fix-rpath.patch;
+ inherit (builtins) storeDir;
+ })
+
+ # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
+ # the shorter NUL-terminated new rpath over the old one to reduce
+ # the risk of potentially breaking the ELF files.
+ # But this can cause much bigger problem for Nix as it can produce
+ # cut-in-half-by-\0 store path references.
+ # Let’s just clear the whole rpath and hope for the best.
+ ./clear-old-rpath.patch
+ ];
+
+ setupHook = ./setup-hook.sh;
+
+ # Ensure there will always be a native C compiler when meson is used, as a
+ # workaround until https://github.com/mesonbuild/meson/pull/6512 lands.
+ depsHostHostPropagated = [ pkgsHostHost.stdenv.cc ];
+
+ # 0.45 update enabled tests but they are failing
+ doCheck = false;
+ # checkInputs = [ ninja pkgconfig ];
+ # checkPhase = "python ./run_project_tests.py";
+
+ postFixup = ''
+ pushd $out/bin
+ # undo shell wrapper as meson tools are called with python
+ for i in *; do
+ mv ".$i-wrapped" "$i"
+ done
+ popd
+
+ # Do not propagate Python
+ rm $out/nix-support/propagated-build-inputs
+ '';
+
+ meta = with lib; {
+ homepage = "https://mesonbuild.com";
+ description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ jtojnar mbe ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch
new file mode 100644
index 000000000000..d34b6c4c4345
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch
@@ -0,0 +1,24 @@
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -456,6 +456,21 @@ class Backend:
+ args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
+ except Exception:
+ pass
++
++ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
++ next_is_path = False
++ # Try to add rpaths set by user or ld-wrapper so that they are not removed.
++ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
++ for flag in nix_ldflags:
++ if flag == '-rpath' or flag == '-L':
++ next_is_path = True
++ elif next_is_path or flag.startswith('-L/'):
++ if flag.startswith('-L/'):
++ flag = flag[2:]
++ if flag.startswith('@storeDir@'):
++ dirs.add(flag)
++ next_is_path = False
++
+ # Match rpath formats:
+ # -Wl,-rpath=
+ # -Wl,-rpath,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
new file mode 100644
index 000000000000..0c924bacf73f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
@@ -0,0 +1,16 @@
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -807,6 +807,13 @@ class GnomeModule(ExtensionModule):
+ if fatal_warnings:
+ scan_command.append('--warn-error')
+
++ if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1:
++ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
++
++ fallback_libpath = girtargets[0].get_custom_install_dir()[0]
++ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
++ scan_command += ['--fallback-library-path=' + fallback_libpath]
++
+ scan_target = self._make_gir_target(state, girfile, scan_command, depends, kwargs)
+
+ typelib_output = '%s-%s.typelib' % (ns, nsversion)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
new file mode 100644
index 000000000000..ada58fff6d41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
@@ -0,0 +1,13 @@
+diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
+index 219b62ec8..e3ceaddbd 100644
+--- a/mesonbuild/envconfig.py
++++ b/mesonbuild/envconfig.py
+@@ -94,7 +94,7 @@ def get_env_var_pair(for_machine: MachineChoice,
+ # compiling we fall back on the unprefixed host version. This
+ # allows native builds to never need to worry about the 'BUILD_*'
+ # ones.
+- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
++ [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]),
+ # Always just the unprefixed host verions
+ [var_name]
+ )[for_machine]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh
new file mode 100644
index 000000000000..3d946fcffd52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh
@@ -0,0 +1,37 @@
+mesonConfigurePhase() {
+ runHook preConfigure
+
+ if [ -z "${dontAddPrefix-}" ]; then
+ mesonFlags="--prefix=$prefix $mesonFlags"
+ fi
+
+ # See multiple-outputs.sh and meson’s coredata.py
+ mesonFlags="\
+ --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
+ --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
+ --includedir=${!outputInclude}/include \
+ --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
+ --localedir=${!outputLib}/share/locale \
+ -Dauto_features=${mesonAutoFeatures:-enabled} \
+ -Dwrap_mode=${mesonWrapMode:-nodownload} \
+ $mesonFlags"
+
+ mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags"
+
+ echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
+
+ meson build $mesonFlags "${mesonFlagsArray[@]}"
+ cd build
+
+ if ! [[ -v enableParallelBuilding ]]; then
+ enableParallelBuilding=1
+ echo "meson: enabled parallel building"
+ fi
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then
+ setOutputFlags=
+ configurePhase=mesonConfigurePhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
new file mode 100644
index 000000000000..3fc893fd07cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "mill";
+ version = "0.8.0";
+
+ src = fetchurl {
+ url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}";
+ sha256 = "04pf76iyrbq2h2hksx0r2fmnd0d9mi6an24zvfv7k79rch11cql1";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontUnpack = true;
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm555 "$src" "$out/bin/.mill-wrapped"
+ # can't use wrapProgram because it sets --argv0
+ makeWrapper "$out/bin/.mill-wrapped" "$out/bin/mill" \
+ --prefix PATH : "${jre}/bin" \
+ --set JAVA_HOME "${jre}" \
+ --set MILL_VERSION "${version}"
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.lihaoyi.com/mill";
+ license = licenses.mit;
+ description = "A build tool for Scala, Java and more";
+ longDescription = ''
+ Mill is a build tool borrowing ideas from modern tools like Bazel, to let you build
+ your projects in a way that's simple, fast, and predictable. Mill has built in
+ support for the Scala programming language, and can serve as a replacement for
+ SBT, but can also be extended to support any other language or platform via
+ modules (written in Java or Scala) or through an external subprocesses.
+ '';
+ maintainers = with maintainers; [ scalavision ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/builder.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/builder.sh
new file mode 100644
index 000000000000..73678ae9f5cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/builder.sh
@@ -0,0 +1,4 @@
+source $stdenv/setup
+installFlags="PREFIX=$out"
+preInstall="mkdir -p $out/man/man1 $out/bin"
+genericBuild
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/default.nix
new file mode 100644
index 000000000000..09028789daa6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/mk/default.nix
@@ -0,0 +1,14 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+ name = "mk-2006-01-31";
+ src = fetchurl {
+ url = "http://tarballs.nixos.org/mk-20060131.tar.gz";
+ sha256 = "0za8dp1211bdp4584xb59liqpww7w1ql0cmlv34p9y928nibcxsr";
+ };
+ builder = ./builder.sh;
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
new file mode 100644
index 000000000000..aea215cc927d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -0,0 +1,133 @@
+{ stdenv, fetchurl, makeWrapper, glibcLocales, mono, dotnetPackages, unzip, dotnet-sdk }:
+
+let
+
+ xplat = fetchurl {
+ url = "https://github.com/mono/msbuild/releases/download/0.07/mono_msbuild_xplat-master-8f608e49.zip";
+ sha256 = "1jxq3fk9a6q2a8i9zacxaz3fkvc22i9qvzlpa7wbb95h42g0ffhq";
+ };
+
+ deps = import ./nuget.nix { inherit fetchurl; };
+
+in
+
+stdenv.mkDerivation rec {
+ pname = "msbuild";
+ version = "16.3+xamarinxplat.2019.07.26.14.57";
+
+ src = fetchurl {
+ url = "https://download.mono-project.com/sources/msbuild/msbuild-${version}.tar.xz";
+ sha256 = "1zcdfx4xsh62wj3g1jc2an0lppsfs691lz4dv05xbgi01aq1hk6a";
+ };
+
+ nativeBuildInputs = [
+ dotnet-sdk
+ mono
+ ];
+
+ buildInputs = [
+ dotnetPackages.Nuget
+ glibcLocales
+ makeWrapper
+ unzip
+ ];
+
+ # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=msbuild
+ phases = ["unpackPhase" "buildPhase" "installPhase" "installCheckPhase"];
+
+ # https://github.com/NixOS/nixpkgs/issues/38991
+ # bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
+ LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
+ "${glibcLocales}/lib/locale/locale-archive";
+
+ buildPhase = ''
+ # nuget would otherwise try to base itself in /homeless-shelter
+ export HOME=$(pwd)/fake-home
+
+ for package in ${toString deps}; do
+ nuget add $package -Source nixos
+ done
+
+ nuget sources Disable -Name "nuget.org"
+ nuget sources Add -Name nixos -Source $(pwd)/nixos
+
+ # license check is case sensitive
+ mv LICENSE license
+
+ mkdir -p artifacts
+ unzip ${xplat} -d artifacts
+ mv artifacts/msbuild artifacts/mono-msbuild
+ chmod +x artifacts/mono-msbuild/MSBuild.dll
+
+ ln -s $(find ${dotnet-sdk} -name libhostfxr.so) artifacts/mono-msbuild/SdkResolvers/Microsoft.DotNet.MSBuildSdkResolver/
+
+ # overwrite the file
+ echo "#!${stdenv.shell}" > eng/common/dotnet-install.sh
+
+ # msbuild response files to use only the nixos source
+ echo "/p:RestoreSources=nixos" > artifacts/mono-msbuild/MSBuild.rsp
+ echo "/p:RestoreSources=nixos" > src/MSBuild/MSBuild.rsp
+
+ # not patchShebangs, there is /bin/bash in the body of the script as well
+ substituteInPlace ./eng/cibuild_bootstrapped_msbuild.sh --replace /bin/bash ${stdenv.shell}
+
+ # DisableNerdbankVersioning https://gitter.im/Microsoft/msbuild/archives/2018/06/27?at=5b33dbc4ce3b0f268d489bfa
+ # TODO there are some (many?) failing tests
+ ./eng/cibuild_bootstrapped_msbuild.sh --host_type mono --configuration Release --skip_tests /p:DisableNerdbankVersioning=true
+ '';
+
+ installPhase = ''
+ mono artifacts/mono-msbuild/MSBuild.dll mono/build/install.proj /p:MonoInstallPrefix="$out" /p:Configuration=Release-MONO
+
+ ln -s ${mono}/lib/mono/msbuild/Current/bin/Roslyn $out/lib/mono/msbuild/Current/bin/Roslyn
+
+ makeWrapper ${mono}/bin/mono $out/bin/msbuild \
+ --set MSBuildExtensionsPath $out/lib/mono/xbuild \
+ --set-default MONO_GC_PARAMS "nursery-size=64m" \
+ --add-flags "$out/lib/mono/msbuild/15.0/bin/MSBuild.dll"
+ '';
+
+ doInstallCheck = true;
+
+ # https://docs.microsoft.com/cs-cz/visualstudio/msbuild/walkthrough-creating-an-msbuild-project-file-from-scratch?view=vs-2019
+ installCheckPhase = ''
+ cat > Helloworld.cs <<EOF
+using System;
+
+class HelloWorld
+{
+ static void Main()
+ {
+#if DebugConfig
+ Console.WriteLine("WE ARE IN THE DEBUG CONFIGURATION");
+#endif
+
+ Console.WriteLine("Hello, world!");
+ }
+}
+EOF
+
+ cat > Helloworld.csproj <<EOF
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Compile Include="Helloworld.cs" />
+ </ItemGroup>
+ <Target Name="Build">
+ <Csc Sources="@(Compile)"/>
+ </Target>
+</Project>
+EOF
+
+ $out/bin/msbuild Helloworld.csproj -t:Build
+ ${mono}/bin/mono Helloworld.exe | grep "Hello, world!"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Mono version of Microsoft Build Engine, the build platform for .NET, and Visual Studio";
+ homepage = "https://github.com/mono/msbuild";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jdanek ];
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/nuget.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/nuget.nix
new file mode 100644
index 000000000000..0aae3840752d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/msbuild/nuget.nix
@@ -0,0 +1,1130 @@
+{ fetchurl }: let
+
+ fetchNuGet = { url, name, version, sha256 }: fetchurl {
+ inherit name url sha256;
+ };
+
+in [
+(fetchNuGet {
+ name = "microsoft.build";
+ version = "14.3.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build/14.3.0";
+ sha256 = "1zamn3p8xxi0wsjlpln0y71ncb977f3fp08mvaz4wmbmi76nr0rz";
+ })
+(fetchNuGet {
+ name = "system.io";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.io/4.1.0";
+ sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+ })
+(fetchNuGet {
+ name = "system.io";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io/4.3.0";
+ sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+ })
+(fetchNuGet {
+ name = "system.xml.xpath";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xpath/4.3.0";
+ sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+ })
+(fetchNuGet {
+ name = "microsoft.net.compilers.toolset";
+ version = "3.3.0-beta2-19367-02";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/microsoft.net.compilers.toolset/3.3.0-beta2-19367-02/microsoft.net.compilers.toolset.3.3.0-beta2-19367-02.nupkg";
+ sha256 = "1v9lz2fmfprhql0klqa8iipiiz3wcflvlgr3a86pcjjk7x0y84sl";
+ })
+(fetchNuGet {
+ name = "system.io.filesystem";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.io.filesystem/4.0.1";
+ sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+ })
+(fetchNuGet {
+ name = "system.io.filesystem";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.filesystem/4.3.0";
+ sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+ })
+(fetchNuGet {
+ name = "largeaddressaware";
+ version = "1.0.3";
+ url = "https://www.nuget.org/api/v2/package/largeaddressaware/1.0.3";
+ sha256 = "1ppss9bgj0hf5s8307bnm2a4qm10mrymp0v12m28a5q81zjz0fr5";
+ })
+(fetchNuGet {
+ name = "nuget.protocol";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.protocol/5.2.0-rtm.6067";
+ sha256 = "0fm3qgcdsy6dy6fih0n9a4w39mzdha4cz51gr9pp9g4nag34za2a";
+ })
+(fetchNuGet {
+ name = "runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+ })
+(fetchNuGet {
+ name = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+ })
+(fetchNuGet {
+ name = "system.buffers";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.buffers/4.3.0";
+ sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+ })
+(fetchNuGet {
+ name = "system.buffers";
+ version = "4.4.0";
+ url = "https://www.nuget.org/api/v2/package/system.buffers/4.4.0";
+ sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+ })
+(fetchNuGet {
+ name = "xunit.core";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.core/2.4.1";
+ sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
+ })
+(fetchNuGet {
+ name = "system.io.filesystem.primitives";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.filesystem.primitives/4.3.0";
+ sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+ })
+(fetchNuGet {
+ name = "system.io.filesystem.primitives";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.io.filesystem.primitives/4.0.1";
+ sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+ })
+(fetchNuGet {
+ name = "system.xml.xmldocument";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xmldocument/4.0.1";
+ sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+ })
+(fetchNuGet {
+ name = "system.xml.xmldocument";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xmldocument/4.3.0";
+ sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+ })
+(fetchNuGet {
+ name = "microsoft.build.framework";
+ version = "15.5.180";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build.framework/15.5.180";
+ sha256 = "064y3a711ikx9pm9d2wyms4i3k4f9hfvn3vymhwygg7yv7gcj92z";
+ })
+(fetchNuGet {
+ name = "microsoft.build.framework";
+ version = "14.3.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build.framework/14.3.0";
+ sha256 = "0r7y1i7dbr3pb53fdrh268hyi627w85nzv2iblwyg8dzkfxraafd";
+ })
+(fetchNuGet {
+ name = "system.globalization";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.globalization/4.3.0";
+ sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+ })
+(fetchNuGet {
+ name = "system.globalization";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.globalization/4.0.11";
+ sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+ })
+(fetchNuGet {
+ name = "microsoft.dotnet.signtool";
+ version = "1.0.0-beta.19372.10";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/microsoft.dotnet.signtool/1.0.0-beta.19372.10/microsoft.dotnet.signtool.1.0.0-beta.19372.10.nupkg";
+ sha256 = "1f2im2lilw10zslfclxh49knr542jy7q09p009flxsgn68riy0j6";
+ })
+(fetchNuGet {
+ name = "system.runtime.handles";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.handles/4.3.0";
+ sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+ })
+(fetchNuGet {
+ name = "system.runtime.handles";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.handles/4.0.1";
+ sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+ })
+(fetchNuGet {
+ name = "microsoft.codeanalysis.common";
+ version = "3.0.0-beta1-61516-01";
+ url = "https://dotnet.myget.org/F/roslyn/api/v2/package/microsoft.codeanalysis.common/3.0.0-beta1-61516-01";
+ sha256 = "1qfm61yrsmihhir7n3hb5ccn1r50i39rv1g74880ma7ihjl1hz54";
+ })
+(fetchNuGet {
+ name = "microsoft.netcore.platforms";
+ version = "1.0.1";
+ url = "https://www.nuget.org/api/v2/package/microsoft.netcore.platforms/1.0.1";
+ sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+ })
+(fetchNuGet {
+ name = "microsoft.netcore.platforms";
+ version = "1.1.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.netcore.platforms/1.1.0";
+ sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+ })
+(fetchNuGet {
+ name = "system.reflection.primitives";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.primitives/4.3.0";
+ sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+ })
+(fetchNuGet {
+ name = "system.reflection.primitives";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.primitives/4.0.1";
+ sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+ })
+(fetchNuGet {
+ name = "microbuild.core";
+ version = "0.2.0";
+ url = "https://www.nuget.org/api/v2/package/microbuild.core/0.2.0";
+ sha256 = "0q4s45jskbyxfx4ay6znnvv94zma2wd85b8rwmwszd2nb0xl3194";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.tracesource";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.tracesource/4.0.0";
+ sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+ })
+(fetchNuGet {
+ name = "system.runtime.numerics";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.numerics/4.3.0";
+ sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks.parallel";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks.parallel/4.3.0";
+ sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks.parallel";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks.parallel/4.0.1";
+ sha256 = "114wdg32hr46dfsnns3pgs67kcha5jn47p5gg0mhxfn5vrkr2p75";
+ })
+(fetchNuGet {
+ name = "nuget.credentials";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.credentials/5.2.0-rtm.6067";
+ sha256 = "07g2na590sph9li5igww74i3gqyrj5cb6gsgjh54f1f4bs4x1c4k";
+ })
+(fetchNuGet {
+ name = "system.objectmodel";
+ version = "4.0.12";
+ url = "https://www.nuget.org/api/v2/package/system.objectmodel/4.0.12";
+ sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+ })
+(fetchNuGet {
+ name = "system.objectmodel";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.objectmodel/4.3.0";
+ sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+ })
+(fetchNuGet {
+ name = "system.xml.xmlserializer";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xmlserializer/4.0.11";
+ sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+ })
+(fetchNuGet {
+ name = "microsoft.codeanalysis.build.tasks";
+ version = "3.0.0-beta1-61516-01";
+ url = "https://dotnet.myget.org/F/roslyn/api/v2/package/microsoft.codeanalysis.build.tasks/3.0.0-beta1-61516-01";
+ sha256 = "1cjpqbd4i0gxhh86nvamlpkisd1krcrya6riwjhghvpjph6115vp";
+ })
+(fetchNuGet {
+ name = "system.private.datacontractserialization";
+ version = "4.1.1";
+ url = "https://www.nuget.org/api/v2/package/system.private.datacontractserialization/4.1.1";
+ sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+ })
+(fetchNuGet {
+ name = "system.numerics.vectors";
+ version = "4.4.0";
+ url = "https://www.nuget.org/api/v2/package/system.numerics.vectors/4.4.0";
+ sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+ })
+(fetchNuGet {
+ name = "microsoft.build.centralpackageversions";
+ version = "2.0.1";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build.centralpackageversions/2.0.1";
+ sha256 = "17cjiaj2b98q8s89168g42jb8rhwm6062jcbv57rbkdiiwdsn55k";
+ })
+(fetchNuGet {
+ name = "system.text.encoding.extensions";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding.extensions/4.0.11";
+ sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+ })
+(fetchNuGet {
+ name = "system.text.encoding.extensions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding.extensions/4.3.0";
+ sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+ })
+(fetchNuGet {
+ name = "microsoft.visualstudio.sdk.embedinteroptypes";
+ version = "15.0.15";
+ url = "https://www.nuget.org/api/v2/package/microsoft.visualstudio.sdk.embedinteroptypes/15.0.15";
+ sha256 = "0chr3slzzcanwcyd9isx4gichqzmfh4zd3h83piw0r4xsww1wmpd";
+ })
+(fetchNuGet {
+ name = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+ })
+(fetchNuGet {
+ name = "system.runtime.extensions";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.extensions/4.1.0";
+ sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+ })
+(fetchNuGet {
+ name = "system.runtime.extensions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.extensions/4.3.0";
+ sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+ })
+(fetchNuGet {
+ name = "system.resources.extensions";
+ version = "4.6.0-preview8.19364.1";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/system.resources.extensions/4.6.0-preview8.19364.1/system.resources.extensions.4.6.0-preview8.19364.1.nupkg";
+ sha256 = "0jh9ilbicmsngv77a4ayzs0n7s440ycdf726nbljw029gq4rzvqf";
+ })
+(fetchNuGet {
+ name = "nuget.frameworks";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.frameworks/5.2.0-rtm.6067";
+ sha256 = "1g1kcfqhxr1bhl3ksbdmz3rb9nq1qmkac1sijf9ng4gmr9fmprdm";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.diagnosticsource";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.diagnosticsource/4.3.0";
+ sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+ })
+(fetchNuGet {
+ name = "system.security.claims";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.claims/4.3.0";
+ sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+ })
+(fetchNuGet {
+ name = "system.linq.expressions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.linq.expressions/4.3.0";
+ sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.stacktrace";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.stacktrace/4.3.0";
+ sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd";
+ })
+(fetchNuGet {
+ name = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.tracing";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.tracing/4.3.0";
+ sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.tracing";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.tracing/4.1.0";
+ sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+ })
+(fetchNuGet {
+ name = "xunit.analyzers";
+ version = "0.10.0";
+ url = "https://www.nuget.org/api/v2/package/xunit.analyzers/0.10.0";
+ sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
+ })
+(fetchNuGet {
+ name = "xunit.assert";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.assert/2.4.1";
+ sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
+ })
+(fetchNuGet {
+ name = "system.appcontext";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.appcontext/4.1.0";
+ sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+ })
+(fetchNuGet {
+ name = "system.appcontext";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.appcontext/4.3.0";
+ sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+ })
+(fetchNuGet {
+ name = "system.text.encoding.codepages";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding.codepages/4.3.0";
+ sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv";
+ })
+(fetchNuGet {
+ name = "system.text.encoding.codepages";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding.codepages/4.0.1";
+ sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+ })
+(fetchNuGet {
+ name = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+ })
+(fetchNuGet {
+ name = "microsoft.codeanalysis.csharp";
+ version = "3.0.0-beta1-61516-01";
+ url = "https://dotnet.myget.org/F/roslyn/api/v2/package/microsoft.codeanalysis.csharp/3.0.0-beta1-61516-01";
+ sha256 = "0a7npkdw6s5jczw1lkm63x2bpz1z3ccid20h5nm6k78cv7sihm4h";
+ })
+(fetchNuGet {
+ name = "system.console";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.console/4.0.0";
+ sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+ })
+(fetchNuGet {
+ name = "system.console";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.console/4.3.0";
+ sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+ })
+(fetchNuGet {
+ name = "system.reflection.typeextensions";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.typeextensions/4.1.0";
+ sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+ })
+(fetchNuGet {
+ name = "system.runtime.compilerservices.unsafe";
+ version = "4.5.2";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.compilerservices.unsafe/4.5.2";
+ sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks/4.3.0";
+ sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks/4.0.11";
+ sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+ })
+(fetchNuGet {
+ name = "xunit.abstractions";
+ version = "2.0.3";
+ url = "https://www.nuget.org/api/v2/package/xunit.abstractions/2.0.3";
+ sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
+ })
+(fetchNuGet {
+ name = "microsoft.build.utilities.core";
+ version = "15.5.180";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build.utilities.core/15.5.180";
+ sha256 = "0c4bjhaqgc98bchln8p5d2p1vyn8qrha2b8gpn2l7bnznbcrd630";
+ })
+(fetchNuGet {
+ name = "microsoft.build.utilities.core";
+ version = "14.3.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.build.utilities.core/14.3.0";
+ sha256 = "0351nsnx12nzkss6vaqwwh7d7car7hrgyh0vyd4bl83c4x3ls1kb";
+ })
+(fetchNuGet {
+ name = "system.reflection.emit";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.emit/4.0.1";
+ sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+ })
+(fetchNuGet {
+ name = "microsoft.visualstudio.setup.configuration.interop";
+ version = "1.16.30";
+ url = "https://www.nuget.org/api/v2/package/microsoft.visualstudio.setup.configuration.interop/1.16.30";
+ sha256 = "14022lx03vdcqlvbbdmbsxg5pqfx1rfq2jywxlyaz9v68cvsb0g4";
+ })
+(fetchNuGet {
+ name = "system.net.sockets";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.net.sockets/4.3.0";
+ sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+ })
+(fetchNuGet {
+ name = "microsoft.dotnet.arcade.sdk";
+ version = "1.0.0-beta.19372.10";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/microsoft.dotnet.arcade.sdk/1.0.0-beta.19372.10/microsoft.dotnet.arcade.sdk.1.0.0-beta.19372.10.nupkg";
+ sha256 = "1lii0yg4fbsma80mmvw2zwplc26abb46q6gkxwbsbkyszkw128hv";
+ })
+(fetchNuGet {
+ name = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+ })
+(fetchNuGet {
+ name = "runtime.native.system.io.compression";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.native.system.io.compression/4.3.0";
+ sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.debug";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.debug/4.3.0";
+ sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.debug";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.debug/4.0.11";
+ sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+ })
+(fetchNuGet {
+ name = "system.xml.readerwriter";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.xml.readerwriter/4.3.0";
+ sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+ })
+(fetchNuGet {
+ name = "system.xml.readerwriter";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.xml.readerwriter/4.0.11";
+ sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+ })
+(fetchNuGet {
+ name = "system.threading.timer";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.timer/4.3.0";
+ sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+ })
+(fetchNuGet {
+ name = "system.threading.timer";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.threading.timer/4.0.1";
+ sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+ })
+(fetchNuGet {
+ name = "system.reflection.metadata";
+ version = "1.4.2";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.metadata/1.4.2";
+ sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi";
+ })
+(fetchNuGet {
+ name = "system.reflection.metadata";
+ version = "1.6.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.metadata/1.6.0";
+ sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+ })
+(fetchNuGet {
+ name = "system.xml.xdocument";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xdocument/4.3.0";
+ sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+ })
+(fetchNuGet {
+ name = "system.linq";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.linq/4.3.0";
+ sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+ })
+(fetchNuGet {
+ name = "system.linq";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.linq/4.1.0";
+ sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+ })
+(fetchNuGet {
+ name = "nuget.librarymodel";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.librarymodel/5.2.0-rtm.6067";
+ sha256 = "0dxvnspgkc1lcmilb67kkipg39ih34cmifs6jwk9kbrwf96z51q9";
+ })
+(fetchNuGet {
+ name = "xlifftasks";
+ version = "1.0.0-beta.19252.1";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/xlifftasks/1.0.0-beta.19252.1/xlifftasks.1.0.0-beta.19252.1.nupkg";
+ sha256 = "0249sfb30y9dgsfryaj8644qw3yc1xp2xzc08lsrwvmm8vjcvkri";
+ })
+(fetchNuGet {
+ name = "system.text.regularexpressions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.text.regularexpressions/4.3.0";
+ sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+ })
+(fetchNuGet {
+ name = "system.text.regularexpressions";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.text.regularexpressions/4.1.0";
+ sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+ })
+(fetchNuGet {
+ name = "system.security.accesscontrol";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.accesscontrol/4.3.0";
+ sha256 = "1gakrskmlmwhzmjc1c2mrwk0fml615rsk31dw0kbjnn9yqnnrjbi";
+ })
+(fetchNuGet {
+ name = "xunit.runner.visualstudio";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.runner.visualstudio/2.4.1";
+ sha256 = "0fln5pk18z98gp0zfshy1p9h6r9wc55nyqhap34k89yran646vhn";
+ })
+(fetchNuGet {
+ name = "system.resources.resourcemanager";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.resources.resourcemanager/4.0.1";
+ sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+ })
+(fetchNuGet {
+ name = "system.resources.resourcemanager";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.resources.resourcemanager/4.3.0";
+ sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+ })
+(fetchNuGet {
+ name = "nuget.projectmodel";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.projectmodel/5.2.0-rtm.6067";
+ sha256 = "1s5950nbcsnfrpbaxdnl6cv1xbsa57fln04lhyrki536476a6wcn";
+ })
+(fetchNuGet {
+ name = "nuget.versioning";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.versioning/5.2.0-rtm.6067";
+ sha256 = "04rr31ms95h7ymqxlalpv3xs48j8ng4ljfz5lmrfw7547rhcrj2h";
+ })
+(fetchNuGet {
+ name = "system.memory";
+ version = "4.5.3";
+ url = "https://www.nuget.org/api/v2/package/system.memory/4.5.3";
+ sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+ })
+(fetchNuGet {
+ name = "system.resources.reader";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.resources.reader/4.0.0";
+ sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
+ })
+(fetchNuGet {
+ name = "nuget.common";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.common/5.2.0-rtm.6067";
+ sha256 = "1ff5dhkv8v04n2kr5gyjjvki4mqsp1w4dwsgj7cvdcfcm8alba0m";
+ })
+(fetchNuGet {
+ name = "runtime.native.system";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.native.system/4.0.0";
+ sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+ })
+(fetchNuGet {
+ name = "runtime.native.system";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.native.system/4.3.0";
+ sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+ })
+(fetchNuGet {
+ name = "system.runtime.interopservices";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.interopservices/4.1.0";
+ sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+ })
+(fetchNuGet {
+ name = "system.runtime.interopservices";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.interopservices/4.3.0";
+ sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+ })
+(fetchNuGet {
+ name = "microbuild.core.sentinel";
+ version = "1.0.0";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/microbuild.core.sentinel/1.0.0/microbuild.core.sentinel.1.0.0.nupkg";
+ sha256 = "035kqx5fkapql108n222lz8psvxk04mv3dy1qg3h08i4b8j3dy8i";
+ })
+(fetchNuGet {
+ name = "sn";
+ version = "1.0.0";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/sn/1.0.0/sn.1.0.0.nupkg";
+ sha256 = "1012fcdc6vq2355v86h434s6p2nnqgpdapb7p25l4h39g5q8p1qs";
+ })
+(fetchNuGet {
+ name = "system.text.encoding";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding/4.0.11";
+ sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+ })
+(fetchNuGet {
+ name = "system.text.encoding";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.text.encoding/4.3.0";
+ sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+ })
+(fetchNuGet {
+ name = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+ })
+(fetchNuGet {
+ name = "system.reflection.emit.lightweight";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.emit.lightweight/4.0.1";
+ sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+ })
+(fetchNuGet {
+ name = "microsoft.net.test.sdk";
+ version = "15.9.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.net.test.sdk/15.9.0";
+ sha256 = "0g7wjgiigs4v8qa32g9ysqgx8bx55dzmbxfkc4ic95mpd1vkjqxw";
+ })
+(fetchNuGet {
+ name = "system.io.compression";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.compression/4.3.0";
+ sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+ })
+(fetchNuGet {
+ name = "system.runtime.serialization.primitives";
+ version = "4.1.1";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.serialization.primitives/4.1.1";
+ sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.fileversioninfo";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.fileversioninfo/4.3.0";
+ sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7";
+ })
+(fetchNuGet {
+ name = "system.xml.xpath.xdocument";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.xml.xpath.xdocument/4.3.0";
+ sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn";
+ })
+(fetchNuGet {
+ name = "system.security.principal.windows";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.principal.windows/4.3.0";
+ sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+ })
+(fetchNuGet {
+ name = "vswhere";
+ version = "2.6.7";
+ url = "https://www.nuget.org/api/v2/package/vswhere/2.6.7";
+ sha256 = "0h4k5i96p7633zzf4xsv7615f9x72rr5qr7b9934ri2y6gshfcwk";
+ })
+(fetchNuGet {
+ name = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+ })
+(fetchNuGet {
+ name = "xunit.runner.console";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.runner.console/2.4.1";
+ sha256 = "13ykz9anhz72xc4q6byvdfwrp54hlcbl6zsfapwfhnzyvfgb9w13";
+ })
+(fetchNuGet {
+ name = "system.threading";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.threading/4.0.11";
+ sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+ })
+(fetchNuGet {
+ name = "system.threading";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading/4.3.0";
+ sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks.dataflow";
+ version = "4.5.24";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks.dataflow/4.5.24";
+ sha256 = "0wahbfdb0jxx3hi04xggfms8wgf68wmvv68m2vfp8v2kiqr5mr2r";
+ })
+(fetchNuGet {
+ name = "microsoft.codeanalysis.analyzers";
+ version = "1.1.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.codeanalysis.analyzers/1.1.0";
+ sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc";
+ })
+(fetchNuGet {
+ name = "system.dynamic.runtime";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.dynamic.runtime/4.3.0";
+ sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+ })
+(fetchNuGet {
+ name = "system.io.pipes";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.pipes/4.3.0";
+ sha256 = "1ygv16gzpi9cnlzcqwijpv7055qc50ynwg3vw29vj1q3iha3h06r";
+ })
+(fetchNuGet {
+ name = "system.net.primitives";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.net.primitives/4.3.0";
+ sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+ })
+(fetchNuGet {
+ name = "system.runtime.serialization.xml";
+ version = "4.1.1";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.serialization.xml/4.1.1";
+ sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
+ })
+(fetchNuGet {
+ name = "system.security.cryptography.encoding";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.cryptography.encoding/4.3.0";
+ sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+ })
+(fetchNuGet {
+ name = "system.collections.nongeneric";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.collections.nongeneric/4.0.1";
+ sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.tools";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.tools/4.3.0";
+ sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+ })
+(fetchNuGet {
+ name = "microsoft.netframework.referenceassemblies";
+ version = "1.0.0-alpha-004";
+ url = "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/microsoft.netframework.referenceassemblies/1.0.0-alpha-004";
+ sha256 = "1qrpxhcx11v92lqwvrih88mlyfw2rkrsjqh7gl8c1h71vyppr3bp";
+ })
+(fetchNuGet {
+ name = "system.reflection.emit.ilgeneration";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.emit.ilgeneration/4.0.1";
+ sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+ })
+(fetchNuGet {
+ name = "xunit.extensibility.execution";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.extensibility.execution/2.4.1";
+ sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
+ })
+(fetchNuGet {
+ name = "microsoft.codecoverage";
+ version = "15.9.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.codecoverage/15.9.0";
+ sha256 = "10v5xrdilnm362g9545qxvlrbwc9vn65jhpb1i0jlhyqsj6bfwzg";
+ })
+(fetchNuGet {
+ name = "xunit.extensibility.core";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit.extensibility.core/2.4.1";
+ sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
+ })
+(fetchNuGet {
+ name = "system.collections.concurrent";
+ version = "4.0.12";
+ url = "https://www.nuget.org/api/v2/package/system.collections.concurrent/4.0.12";
+ sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+ })
+(fetchNuGet {
+ name = "system.collections.concurrent";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.collections.concurrent/4.3.0";
+ sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+ })
+(fetchNuGet {
+ name = "system.collections";
+ version = "4.0.11";
+ url = "https://www.nuget.org/api/v2/package/system.collections/4.0.11";
+ sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+ })
+(fetchNuGet {
+ name = "system.collections";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.collections/4.3.0";
+ sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+ })
+(fetchNuGet {
+ name = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+ })
+(fetchNuGet {
+ name = "microsoft.build.nugetsdkresolver";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/microsoft.build.nugetsdkresolver/5.2.0-rtm.6067";
+ sha256 = "1rz2i4md7b8rlybb9s7416l0pr357f3ar149s6ipfq0xijn3xgmh";
+ })
+(fetchNuGet {
+ name = "system.reflection";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection/4.1.0";
+ sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+ })
+(fetchNuGet {
+ name = "system.reflection";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection/4.3.0";
+ sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+ })
+(fetchNuGet {
+ name = "nuget.configuration";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.configuration/5.2.0-rtm.6067";
+ sha256 = "075mypb32i0d0x73rcr0di6pb0bhlp0izv3633ky64kddriajma1";
+ })
+(fetchNuGet {
+ name = "system.net.http";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.net.http/4.3.0";
+ sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+ })
+(fetchNuGet {
+ name = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+ })
+(fetchNuGet {
+ name = "system.security.cryptography.x509certificates";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.cryptography.x509certificates/4.3.0";
+ sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+ })
+(fetchNuGet {
+ name = "nuget.packaging";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.packaging/5.2.0-rtm.6067";
+ sha256 = "16p5glvvpp5rw10ycbpyg39k4prir450l12r5frpm8qz0rdp3xig";
+ })
+(fetchNuGet {
+ name = "nuget.commands";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.commands/5.2.0-rtm.6067";
+ sha256 = "06vnphsmwnvcigwj37hy5abipjzwhnq61zw66cclwd6jjibb1kh9";
+ })
+(fetchNuGet {
+ name = "system.runtime";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime/4.1.0";
+ sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+ })
+(fetchNuGet {
+ name = "system.runtime";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime/4.3.0";
+ sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+ })
+(fetchNuGet {
+ name = "microsoft.win32.primitives";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.win32.primitives/4.3.0";
+ sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+ })
+(fetchNuGet {
+ name = "microsoft.win32.primitives";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/microsoft.win32.primitives/4.0.1";
+ sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+ })
+(fetchNuGet {
+ name = "system.collections.immutable";
+ version = "1.2.0";
+ url = "https://www.nuget.org/api/v2/package/system.collections.immutable/1.2.0";
+ sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
+ })
+(fetchNuGet {
+ name = "system.collections.immutable";
+ version = "1.3.1";
+ url = "https://www.nuget.org/api/v2/package/system.collections.immutable/1.3.1";
+ sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva";
+ })
+(fetchNuGet {
+ name = "system.collections.immutable";
+ version = "1.5.0";
+ url = "https://www.nuget.org/api/v2/package/system.collections.immutable/1.5.0";
+ sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+ })
+(fetchNuGet {
+ name = "nuget.dependencyresolver.core";
+ version = "5.2.0-rtm.6067";
+ url = "https://dotnet.myget.org/F/nuget-build/api/v2/package/nuget.dependencyresolver.core/5.2.0-rtm.6067";
+ sha256 = "0iw1z2lascjjmdkk9nf2wqm5sj5nqjv4611xx29vlmp6cyhnpq4i";
+ })
+(fetchNuGet {
+ name = "netstandard.library";
+ version = "1.6.1";
+ url = "https://www.nuget.org/api/v2/package/netstandard.library/1.6.1";
+ sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+ })
+(fetchNuGet {
+ name = "shouldly";
+ version = "3.0.0";
+ url = "https://www.nuget.org/api/v2/package/shouldly/3.0.0";
+ sha256 = "1hg28w898kl84rx57sclb2z9b76v5hxlwxig1xnb6fr81aahzlw3";
+ })
+(fetchNuGet {
+ name = "microsoft.diasymreader.pdb2pdb";
+ version = "1.1.0-beta1-62506-02";
+ url = "https://dotnetfeed.blob.core.windows.net/dotnet-core/flatcontainer/microsoft.diasymreader.pdb2pdb/1.1.0-beta1-62506-02/microsoft.diasymreader.pdb2pdb.1.1.0-beta1-62506-02.nupkg";
+ sha256 = "1dkhpmq5aw34nndvb4xc370866vf33x70zrjhgvnpwwspb6vb0zh";
+ })
+(fetchNuGet {
+ name = "system.globalization.calendars";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.globalization.calendars/4.3.0";
+ sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+ })
+(fetchNuGet {
+ name = "system.io.compression.zipfile";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.compression.zipfile/4.3.0";
+ sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+ })
+(fetchNuGet {
+ name = "system.runtime.interopservices.runtimeinformation";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.interopservices.runtimeinformation/4.0.0";
+ sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+ })
+(fetchNuGet {
+ name = "system.runtime.interopservices.runtimeinformation";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.runtime.interopservices.runtimeinformation/4.3.0";
+ sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+ })
+(fetchNuGet {
+ name = "system.io.filesystem.driveinfo";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.io.filesystem.driveinfo/4.3.0";
+ sha256 = "0j67khc75lwdf7d5i3z41cks7zhac4zdccgvk2xmq6wm1l08xnlh";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks.extensions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks.extensions/4.3.0";
+ sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+ })
+(fetchNuGet {
+ name = "system.threading.tasks.extensions";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.tasks.extensions/4.0.0";
+ sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+ })
+(fetchNuGet {
+ name = "microsoft.netcore.targets";
+ version = "1.0.1";
+ url = "https://www.nuget.org/api/v2/package/microsoft.netcore.targets/1.0.1";
+ sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+ })
+(fetchNuGet {
+ name = "microsoft.netcore.targets";
+ version = "1.1.0";
+ url = "https://www.nuget.org/api/v2/package/microsoft.netcore.targets/1.1.0";
+ sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+ })
+(fetchNuGet {
+ name = "system.reflection.extensions";
+ version = "4.0.1";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.extensions/4.0.1";
+ sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+ })
+(fetchNuGet {
+ name = "system.reflection.extensions";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.reflection.extensions/4.3.0";
+ sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.process";
+ version = "4.1.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.process/4.1.0";
+ sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
+ })
+(fetchNuGet {
+ name = "system.diagnostics.process";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.diagnostics.process/4.3.0";
+ sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+ })
+(fetchNuGet {
+ name = "system.security.cryptography.primitives";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.cryptography.primitives/4.3.0";
+ sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+ })
+(fetchNuGet {
+ name = "system.threading.thread";
+ version = "4.0.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.thread/4.0.0";
+ sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+ })
+(fetchNuGet {
+ name = "system.threading.thread";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.threading.thread/4.3.0";
+ sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+ })
+(fetchNuGet {
+ name = "newtonsoft.json";
+ version = "9.0.1";
+ url = "https://www.nuget.org/api/v2/package/newtonsoft.json/9.0.1";
+ sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+ })
+(fetchNuGet {
+ name = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0";
+ sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+ })
+(fetchNuGet {
+ name = "xunit";
+ version = "2.4.1";
+ url = "https://www.nuget.org/api/v2/package/xunit/2.4.1";
+ sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
+ })
+(fetchNuGet {
+ name = "system.valuetuple";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.valuetuple/4.3.0";
+ sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn";
+ })
+(fetchNuGet {
+ name = "microsoft.netframework.referenceassemblies.net472";
+ version = "1.0.0-alpha-004";
+ url = "https://dotnet.myget.org/F/roslyn-tools/api/v2/package/microsoft.netframework.referenceassemblies.net472/1.0.0-alpha-004";
+ sha256 = "08wa54dm7yskayzxivnwbm8sg1pf6ai8ccr64ixf9lyz3yw6y0nc";
+ })
+(fetchNuGet {
+ name = "system.security.cryptography.algorithms";
+ version = "4.3.0";
+ url = "https://www.nuget.org/api/v2/package/system.security.cryptography.algorithms/4.3.0";
+ sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+ })
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
new file mode 100644
index 000000000000..bc5ad7744d68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3, buildDocs ? true, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxslt, re2c }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "ninja";
+ version = "1.10.1";
+
+ src = fetchFromGitHub {
+ owner = "ninja-build";
+ repo = "ninja";
+ rev = "v${version}";
+ sha256 = "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3";
+ };
+
+ nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ];
+
+ buildPhase = ''
+ python configure.py --bootstrap
+ '' + optionalString buildDocs ''
+ # "./ninja -vn manual" output copied here to support cross compilation.
+ asciidoc -b docbook -d book -o build/manual.xml doc/manual.asciidoc
+ xsltproc --nonet doc/docbook.xsl build/manual.xml > doc/manual.html
+ '';
+
+ installPhase = ''
+ install -Dm555 -t $out/bin ninja
+ install -Dm444 misc/bash-completion $out/share/bash-completion/completions/ninja
+ install -Dm444 misc/zsh-completion $out/share/zsh/site-functions/_ninja
+ '' + optionalString buildDocs ''
+ install -Dm444 -t $out/share/doc/ninja doc/manual.asciidoc doc/manual.html
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ meta = {
+ description = "Small build system with a focus on speed";
+ longDescription = ''
+ Ninja is a small build system with a focus on speed. It differs from
+ other build systems in two major respects: it is designed to have its
+ input files generated by a higher-level build system, and it is designed
+ to run builds as fast as possible.
+ '';
+ homepage = "https://ninja-build.org/";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ thoughtpolice bjornfor orivej ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/setup-hook.sh
new file mode 100644
index 000000000000..7d8087ad1342
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/ninja/setup-hook.sh
@@ -0,0 +1,78 @@
+ninjaBuildPhase() {
+ runHook preBuild
+
+ local buildCores=1
+
+ # Parallel building is enabled by default.
+ if [ "${enableParallelBuilding-1}" ]; then
+ buildCores="$NIX_BUILD_CORES"
+ fi
+
+ local flagsArray=(
+ -j$buildCores -l$NIX_BUILD_CORES
+ $ninjaFlags "${ninjaFlagsArray[@]}"
+ )
+
+ echoCmd 'build flags' "${flagsArray[@]}"
+ ninja "${flagsArray[@]}"
+
+ runHook postBuild
+}
+
+if [ -z "${dontUseNinjaBuild-}" -a -z "${buildPhase-}" ]; then
+ buildPhase=ninjaBuildPhase
+fi
+
+ninjaInstallPhase() {
+ runHook preInstall
+
+ # shellcheck disable=SC2086
+ local flagsArray=(
+ $ninjaFlags "${ninjaFlagsArray[@]}"
+ ${installTargets:-install}
+ )
+
+ echoCmd 'install flags' "${flagsArray[@]}"
+ ninja "${flagsArray[@]}"
+
+ runHook postInstall
+}
+
+if [ -z "${dontUseNinjaInstall-}" -a -z "${installPhase-}" ]; then
+ installPhase=ninjaInstallPhase
+fi
+
+ninjaCheckPhase() {
+ runHook preCheck
+
+ if [ -z "${checkTarget:-}" ]; then
+ if ninja -t query test >/dev/null 2>&1; then
+ checkTarget=test
+ fi
+ fi
+
+ if [ -z "${checkTarget:-}" ]; then
+ echo "no test target found in ninja, doing nothing"
+ else
+ local buildCores=1
+
+ if [ "${enableParallelChecking-1}" ]; then
+ buildCores="$NIX_BUILD_CORES"
+ fi
+
+ local flagsArray=(
+ -j$buildCores -l$NIX_BUILD_CORES
+ $ninjaFlags "${ninjaFlagsArray[@]}"
+ $checkTarget
+ )
+
+ echoCmd 'check flags' "${flagsArray[@]}"
+ ninja "${flagsArray[@]}"
+ fi
+
+ runHook postCheck
+}
+
+if [ -z "${dontUseNinjaCheck-}" -a -z "${checkPhase-}" ]; then
+ checkPhase=ninjaCheckPhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/pants/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/pants/default.nix
new file mode 100644
index 000000000000..9757d8cda8d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/pants/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, pythonPackages }:
+
+with stdenv.lib;
+with pythonPackages;
+
+buildPythonApplication rec {
+ pname = "pantsbuild.pants";
+ version = "1.7.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1d7ff1383287c8e72f2c9855cfef982d362274a64e2707a93c070f988ba80a37";
+ };
+
+ # No tests
+ doCheck = false;
+
+ prePatch = ''
+ sed -E -i "s/'([[:alnum:].-]+)[=><][[:digit:]=><.,]*'/'\\1'/g" setup.py
+ substituteInPlace setup.py --replace "requests[security]<2.19,>=2.5.0" "requests[security]<2.22,>=2.5.0"
+ '';
+
+ # Unnecessary, and causes some really weird behavior around .class files, which
+ # this package bundles. See https://github.com/NixOS/nixpkgs/issues/22520.
+ dontStrip = true;
+
+ propagatedBuildInputs = [
+ twitter-common-collections setproctitle ansicolors packaging pathspec
+ scandir twitter-common-dirutil psutil requests pystache pex docutils
+ markdown pygments twitter-common-confluence fasteners pywatchman
+ futures cffi subprocess32 contextlib2 faulthandler pyopenssl wheel
+ ];
+
+ meta = {
+ description = "A build system for software projects in a variety of languages";
+ homepage = "https://www.pantsbuild.org/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ copumpkin ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix
new file mode 100644
index 000000000000..d4f94c1aed97
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/qbs/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, qmake, qtbase, qtscript }:
+
+stdenv.mkDerivation rec {
+ pname = "qbs";
+
+ version = "1.16.0";
+
+ src = fetchFromGitHub {
+ owner = "qbs";
+ repo = "qbs";
+ rev = "v${version}";
+ sha256 = "1kg11s3figpkvgd85p0zk416s57gnvlzrz1isbc2lv13adidf041";
+ };
+
+ nativeBuildInputs = [ qmake ];
+
+ qmakeFlags = [ "QBS_INSTALL_PREFIX=$(out)" "qbs.pro" ];
+
+ buildInputs = [ qtbase qtscript ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A tool that helps simplify the build process for developing projects across multiple platforms";
+ homepage = "https://wiki.qt.io/Qbs";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ expipiplus1 ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile
new file mode 100644
index 000000000000..bd1ff6faa65c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'rake'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile.lock
new file mode 100644
index 000000000000..f89ceae93442
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ rake (12.3.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ rake
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/default.nix
new file mode 100644
index 000000000000..d2f0a264ba74
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "rake";
+ gemdir = ./.;
+ exes = [ "rake" ];
+
+ passthru.updateScript = bundlerUpdateScript "rake";
+
+ meta = with lib; {
+ description = "A software task management and build automation tool";
+ homepage = "https://github.com/ruby/rake";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/gemset.nix
new file mode 100644
index 000000000000..05a59cff850f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rake/gemset.nix
@@ -0,0 +1,12 @@
+{
+ rake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+ type = "gem";
+ };
+ version = "12.3.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
new file mode 100644
index 000000000000..1c5996c6b1cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, erlang }:
+
+
+let
+ version = "2.6.4";
+in
+stdenv.mkDerivation {
+ pname = "rebar";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/rebar/rebar/archive/${version}.tar.gz";
+ sha256 = "01xxq1f1vrwca00pky2van26hi2hhr05ghfhy71v5cifzax4cwjp";
+ };
+
+ buildInputs = [ erlang ];
+
+ buildPhase = "escript bootstrap";
+ installPhase = ''
+ mkdir -p $out/bin
+ cp rebar $out/bin/rebar
+ '';
+
+ meta = {
+ homepage = "https://github.com/rebar/rebar";
+ description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+
+ longDescription = ''
+ rebar is a self-contained Erlang script, so it's easy to
+ distribute or even embed directly in a project. Where possible,
+ rebar uses standard Erlang/OTP conventions for project
+ structures, thus minimizing the amount of build configuration
+ work. rebar also provides dependency management, enabling
+ application writers to easily re-use common libraries from a
+ variety of locations (git, hg, etc).
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
new file mode 100644
index 000000000000..5c0fff134a7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -0,0 +1,135 @@
+{ stdenv, fetchFromGitHub,
+ fetchHex, erlang,
+ tree }:
+
+let
+ version = "3.12.0";
+
+ erlware_commons = fetchHex {
+ pkg = "erlware_commons";
+ version = "1.3.1";
+ sha256 = "7aada93f368d0a0430122e39931b7fb4ac9e94dbf043cdc980ad4330fd9cd166";
+ };
+ ssl_verify_fun = fetchHex {
+ pkg = "ssl_verify_fun";
+ version = "1.1.3";
+ sha256 = "2e120e6505d6e9ededb2836611dfe2f7028432dc280957998e154307b5ea92fe";
+ };
+ certifi = fetchHex {
+ pkg = "certifi";
+ version = "2.3.1";
+ sha256 = "e12d667d042c11d130594bae2b0097e63836fe8b1e6d6b2cc48f8bb7a2cf7d68";
+ };
+ providers = fetchHex {
+ pkg = "providers";
+ version = "1.7.0";
+ sha256 = "8be66129ca85c2fa74efd8737cdaedd31c1c1af51dd2fd601495a6def4cae4a6";
+ };
+ getopt = fetchHex {
+ pkg = "getopt";
+ version = "1.0.1";
+ sha256 = "53e1ab83b9ceb65c9672d3e7a35b8092e9bdc9b3ee80721471a161c10c59959c";
+ };
+ bbmustache = fetchHex {
+ pkg = "bbmustache";
+ version = "1.6.0";
+ sha256 = "53e02d296512a57be03a98c91541b34d2ca64930268030b2d12364a0332015df";
+ };
+ relx = fetchHex {
+ pkg = "relx";
+ version = "3.28.0";
+ sha256 = "8afb871c0a2a27f0063d973903fc64d2207bc705ecc3607462920683d24ac7b5";
+ };
+ cf = fetchHex {
+ pkg = "cf";
+ version = "0.2.2";
+ sha256 = "08cvy7skn5d2k4manlx5k3anqgjdvajjhc5jwxbaszxw34q3na28";
+ };
+ cth_readable = fetchHex {
+ pkg = "cth_readable";
+ version = "1.4.3";
+ sha256 = "0wr0hba6ka74s3628jrrd7ynjdh7syxigkh7ildg8fgi20ab88fd";
+ };
+ eunit_formatters = fetchHex {
+ pkg = "eunit_formatters";
+ version = "0.5.0";
+ sha256 = "1jb3hzb216r29x2h4pcjwfmx1k81431rgh5v0mp4x5146hhvmj6n";
+ };
+ hex_core = fetchHex {
+ pkg = "hex_core";
+ version = "0.4.0";
+ sha256 = "8ace8c6cfa10df4cb8be876f42f7446890e124203c094cc7b4e7616fb8de5d7f";
+ };
+ parse_trans = fetchHex {
+ pkg = "parse_trans";
+ version = "3.3.0";
+ sha256 = "0q5r871bzx1a8fa06yyxdi3xkkp7v5yqazzah03d6yl3vsmn7vqp";
+ };
+
+in
+stdenv.mkDerivation rec {
+ pname = "rebar3";
+ inherit version erlang;
+
+ src = fetchFromGitHub {
+ owner = "erlang";
+ repo = pname;
+ rev = version;
+ sha256 = "0936ix7lfwsamssap58b265zid7x2m97azrr2qpjcln3xysd16lg";
+ };
+
+ bootstrapper = ./rebar3-nix-bootstrap;
+
+ buildInputs = [ erlang tree ];
+
+ postPatch = ''
+ mkdir -p _checkouts
+ mkdir -p _build/default/lib/
+
+ cp --no-preserve=mode -R ${erlware_commons} _checkouts/erlware_commons
+ cp --no-preserve=mode -R ${providers} _checkouts/providers
+ cp --no-preserve=mode -R ${getopt} _checkouts/getopt
+ cp --no-preserve=mode -R ${bbmustache} _checkouts/bbmustache
+ cp --no-preserve=mode -R ${certifi} _checkouts/certifi
+ cp --no-preserve=mode -R ${cf} _checkouts/cf
+ cp --no-preserve=mode -R ${cth_readable} _checkouts/cth_readable
+ cp --no-preserve=mode -R ${eunit_formatters} _checkouts/eunit_formatters
+ cp --no-preserve=mode -R ${relx} _checkouts/relx
+ cp --no-preserve=mode -R ${ssl_verify_fun} _checkouts/ssl_verify_fun
+ cp --no-preserve=mode -R ${hex_core} _checkouts/hex_core
+ cp --no-preserve=mode -R ${parse_trans} _checkouts/parse_trans
+
+ # Bootstrap script expects the dependencies in _build/default/lib
+ # TODO: Make it accept checkouts?
+ for i in _checkouts/* ; do
+ ln -s $(pwd)/$i $(pwd)/_build/default/lib/
+ done
+ '';
+
+ buildPhase = ''
+ HOME=. escript bootstrap
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp rebar3 $out/bin/rebar3
+ '';
+
+ meta = {
+ homepage = "https://github.com/rebar/rebar3";
+ description = "Erlang build tool that makes it easy to compile and test Erlang applications, port drivers and releases";
+
+ longDescription = ''
+ rebar is a self-contained Erlang script, so it's easy to distribute or
+ even embed directly in a project. Where possible, rebar uses standard
+ Erlang/OTP conventions for project structures, thus minimizing the amount
+ of build configuration work. rebar also provides dependency management,
+ enabling application writers to easily re-use common libraries from a
+ variety of locations (hex.pm, git, hg, and so on).
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = with stdenv.lib.maintainers; [ gleber tazjin ];
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
new file mode 100755
index 000000000000..f1deed1df352
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rebar3/rebar3-nix-bootstrap
@@ -0,0 +1,267 @@
+#!/usr/bin/env escript
+%% -*- erlang-indent-level: 4;indent-tabs-mode: nil -*-
+%%! -smp enable
+%%% ---------------------------------------------------------------------------
+%%% @doc
+%%% The purpose of this command is to prepare a rebar3 project so that
+%%% rebar3 understands that the dependencies are all already
+%%% installed. If you want a hygienic build on nix then you must run
+%%% this command before running rebar3. I suggest that you add a
+%%% `Makefile` to your project and have the bootstrap command be a
+%%% dependency of the build commands. See the nix documentation for
+%%% more information.
+%%%
+%%% This command designed to have as few dependencies as possible so
+%%% that it can be a dependency of root level packages like rebar3. To
+%%% that end it does many things in a fairly simplistic way. That is
+%%% by design.
+%%%
+%%% ### Assumptions
+%%%
+%%% This command makes the following assumptions:
+%%%
+%%% * It is run in a nix-shell or nix-build environment
+%%% * that all dependencies have been added to the ERL_LIBS
+%%% Environment Variable
+
+-record(data, {version
+ , debug_info = false
+ , compile_ports
+ , erl_libs
+ , plugins
+ , root
+ , name}).
+
+-define(HEX_REGISTRY_PATH, ".cache/rebar3/hex/default/registry").
+
+main(Args) ->
+ {ok, ArgData} = parse_args(Args),
+ {ok, RequiredData} = gather_required_data_from_the_environment(ArgData),
+ do_the_bootstrap(RequiredData).
+
+-spec do_the_bootstrap(#data{}) -> ok.
+do_the_bootstrap(RequiredData) ->
+ ok = bootstrap_configs(RequiredData),
+ ok = bootstrap_plugins(RequiredData),
+ ok = bootstrap_libs(RequiredData).
+
+%% @doc
+%% Argument parsing is super simple only because we want to keep the
+%% dependencies minimal. For now there can be one entry on the
+%% command line: "debug-info"
+-spec parse_args([string()]) -> #data{}.
+parse_args(Args0) ->
+ PossibleArgs = sets:from_list(["debug-info"]),
+ Args1 = sets:from_list(Args0),
+ Result = sets:subtract(Args1, PossibleArgs),
+ case sets:to_list(Result) of
+ [] ->
+ {ok, #data{debug_info = sets:is_element("debug-info", Args1)}};
+ UnknownArgs ->
+ io:format("Unexpected command line arguments passed in: ~p~n",
+ [UnknownArgs]),
+ erlang:halt(120)
+ end.
+
+
+-spec bootstrap_configs(#data{}) -> ok.
+bootstrap_configs(RequiredData)->
+ io:format("Boostrapping app and rebar configurations~n"),
+ ok = if_single_app_project_update_app_src_version(RequiredData),
+ ok = if_compile_ports_add_pc_plugin(RequiredData),
+ ok = if_debug_info_add(RequiredData).
+
+-spec bootstrap_plugins(#data{}) -> ok.
+bootstrap_plugins(#data{plugins = Plugins}) ->
+ io:format("Bootstrapping rebar3 plugins~n"),
+ Target = "_build/default/plugins/",
+ Paths = string:tokens(Plugins, " "),
+ CopiableFiles =
+ lists:foldl(fun(Path, Acc) ->
+ gather_dependency(Path) ++ Acc
+ end, [], Paths),
+ lists:foreach(fun (Path) ->
+ ok = link_app(Path, Target)
+ end, CopiableFiles).
+
+-spec bootstrap_libs(#data{}) -> ok.
+bootstrap_libs(#data{erl_libs = ErlLibs}) ->
+ io:format("Bootstrapping dependent libraries~n"),
+ Target = "_build/default/lib/",
+ Paths = string:tokens(ErlLibs, ":"),
+ CopiableFiles =
+ lists:foldl(fun(Path, Acc) ->
+ gather_directory_contents(Path) ++ Acc
+ end, [], Paths),
+ lists:foreach(fun (Path) ->
+ ok = link_app(Path, Target)
+ end, CopiableFiles).
+
+-spec gather_dependency(string()) -> [{string(), string()}].
+gather_dependency(Path) ->
+ FullLibrary = filename:join(Path, "lib/erlang/lib/"),
+ case filelib:is_dir(FullLibrary) of
+ true ->
+ gather_directory_contents(FullLibrary);
+ false ->
+ [raw_hex(Path)]
+ end.
+
+-spec raw_hex(string()) -> {string(), string()}.
+raw_hex(Path) ->
+ [_, Name] = re:split(Path, "-hex-source-"),
+ {Path, erlang:binary_to_list(Name)}.
+
+-spec gather_directory_contents(string()) -> [{string(), string()}].
+gather_directory_contents(Path) ->
+ {ok, Names} = file:list_dir(Path),
+ lists:map(fun(AppName) ->
+ {filename:join(Path, AppName), fixup_app_name(AppName)}
+ end, Names).
+
+%% @doc
+%% Makes a symlink from the directory pointed at by Path to a
+%% directory of the same name in Target. So if we had a Path of
+%% {`foo/bar/baz/bash`, `baz`} and a Target of `faz/foo/foos`, the symlink
+%% would be `faz/foo/foos/baz`.
+-spec link_app({string(), string()}, string()) -> ok.
+link_app({Path, TargetFile}, TargetDir) ->
+ Target = filename:join(TargetDir, TargetFile),
+ make_symlink(Path, Target).
+
+-spec make_symlink(string(), string()) -> ok.
+make_symlink(Path, TargetFile) ->
+ file:delete(TargetFile),
+ ok = filelib:ensure_dir(TargetFile),
+ io:format("Making symlink from ~s to ~s~n", [Path, TargetFile]),
+ ok = file:make_symlink(Path, TargetFile).
+
+%% @doc
+%% This takes an app name in the standard OTP <name>-<version> format
+%% and returns just the app name. Why? Because rebar doesn't
+%% respect OTP conventions in some cases.
+-spec fixup_app_name(string()) -> string().
+fixup_app_name(FileName) ->
+ case string:tokens(FileName, "-") of
+ [Name] -> Name;
+ [Name, _Version] -> Name;
+ [Name, _Version, _Tag] -> Name
+ end.
+
+-spec gather_required_data_from_the_environment(#data{}) -> {ok, #data{}}.
+gather_required_data_from_the_environment(ArgData) ->
+ {ok, ArgData#data{ version = guard_env("version")
+ , erl_libs = get_env("ERL_LIBS", [])
+ , plugins = get_env("buildPlugins", [])
+ , root = code:root_dir()
+ , name = guard_env("name")
+ , compile_ports = nix2bool(get_env("compilePorts", ""))}}.
+
+-spec nix2bool(any()) -> boolean().
+nix2bool("1") ->
+ true;
+nix2bool("") ->
+ false.
+
+get_env(Name) ->
+ os:getenv(Name).
+get_env(Name, Def) ->
+ case get_env(Name) of
+ false -> Def;
+ Val -> Val
+ end.
+
+-spec guard_env(string()) -> string().
+guard_env(Name) ->
+ case get_env(Name) of
+ false ->
+ stderr("Expected Environment variable ~s! Are you sure you are "
+ "running in a Nix environment? Either a nix-build, "
+ "nix-shell, etc?~n", [Name]),
+ erlang:halt(1);
+ Variable ->
+ Variable
+ end.
+
+%% @doc
+%% If debug info is set we need to add debug info to the list of compile options
+%%
+-spec if_debug_info_add(#data{}) -> ok.
+if_debug_info_add(#data{debug_info = true}) ->
+ ConfigTerms = add_debug_info(read_rebar_config()),
+ Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
+ ConfigTerms),
+ file:write_file("rebar.config", Text);
+if_debug_info_add(_) ->
+ ok.
+
+-spec add_debug_info([term()]) -> [term()].
+add_debug_info(Config) ->
+ ExistingOpts = case lists:keysearch(erl_opts, 1, Config) of
+ {value, {erl_opts, ExistingOptsList}} -> ExistingOptsList;
+ _ -> []
+ end,
+ case lists:member(debug_info, ExistingOpts) of
+ true ->
+ Config;
+ false ->
+ lists:keystore(erl_opts, 1, Config,
+ {erl_opts, [debug_info | ExistingOpts]})
+ end.
+
+
+%% @doc
+%% If the compile ports flag is set, rewrite the rebar config to
+%% include the 'pc' plugin.
+-spec if_compile_ports_add_pc_plugin(#data{}) -> ok.
+if_compile_ports_add_pc_plugin(#data{compile_ports = true}) ->
+ ConfigTerms = add_pc_to_plugins(read_rebar_config()),
+ Text = lists:map(fun(Term) -> io_lib:format("~tp.~n", [Term]) end,
+ ConfigTerms),
+ file:write_file("rebar.config", Text);
+if_compile_ports_add_pc_plugin(_) ->
+ ok.
+
+-spec add_pc_to_plugins([term()]) -> [term()].
+add_pc_to_plugins(Config) ->
+ PluginList = case lists:keysearch(plugins, 1, Config) of
+ {value, {plugins, ExistingPluginList}} -> ExistingPluginList;
+ _ -> []
+ end,
+ lists:keystore(plugins, 1, Config, {plugins, [pc | PluginList]}).
+
+-spec read_rebar_config() -> [term()].
+read_rebar_config() ->
+ case file:consult("rebar.config") of
+ {ok, Terms} ->
+ Terms;
+ _ ->
+ stderr("Unable to read rebar config!", []),
+ erlang:halt(1)
+ end.
+
+
+-spec if_single_app_project_update_app_src_version(#data{}) -> ok.
+if_single_app_project_update_app_src_version(#data{name = Name,
+ version = Version}) ->
+ SrcFile = filename:join("src",
+ lists:concat([Name, ".app.src"])),
+
+ case filelib:is_file(SrcFile) of
+ true ->
+ update_app_src_with_version(SrcFile, Version);
+ false ->
+ ok
+ end.
+
+-spec update_app_src_with_version(string(), string()) -> ok.
+update_app_src_with_version(SrcFile, Version) ->
+ {ok, [{application, Name, Details}]} = file:consult(SrcFile),
+ NewDetails = lists:keyreplace(vsn, 1, Details, {vsn, Version}),
+ ok = file:write_file(SrcFile, io_lib:fwrite("~p.\n", [{application, Name, NewDetails}])).
+
+%% @doc
+%% Write the result of the format string out to stderr.
+-spec stderr(string(), [term()]) -> ok.
+stderr(FormatStr, Args) ->
+ io:put_chars(standard_error, io_lib:format(FormatStr, Args)).
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
new file mode 100644
index 000000000000..c62fb0f2515d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, lib, python3, fetchFromGitHub, which, findutils, coreutils
+, perl, installShellFiles
+, doCheck ? true
+}: stdenv.mkDerivation rec {
+
+ pname = "redo-apenwarr";
+ version = "0.42c";
+
+ src = fetchFromGitHub rec {
+ owner = "apenwarr";
+ repo = "redo";
+ rev = "${repo}-${version}";
+ sha256 = "0kc2gag1n5583195gs38gjm8mb7in9y70c07fxibsay19pvvb8iw";
+ };
+
+ postPatch = ''
+
+ patchShebangs minimal/do
+
+ '' + lib.optionalString doCheck ''
+ unset CC CXX
+
+ substituteInPlace minimal/do.test \
+ --replace "/bin/pwd" "${coreutils}/bin/pwd"
+
+ substituteInPlace t/105-sympath/all.do \
+ --replace "/bin/pwd" "${coreutils}/bin/pwd"
+
+ substituteInPlace t/all.do \
+ --replace "/bin/ls" "ls"
+
+ substituteInPlace t/110-compile/hello.o.do \
+ --replace "/usr/include" "${stdenv.lib.getDev stdenv.cc.libc}/include"
+
+ substituteInPlace t/200-shell/nonshelltest.do \
+ --replace "/usr/bin/env perl" "${perl}/bin/perl"
+
+ '';
+
+ inherit doCheck;
+
+ checkTarget = "test";
+
+ outputs = [ "out" "man" ];
+
+ installFlags = [
+ "PREFIX=$(out)"
+ "DESTDIR=/"
+ ];
+
+ nativeBuildInputs = [
+ python3
+ (with python3.pkgs; [ beautifulsoup4 markdown ])
+ which
+ findutils
+ installShellFiles
+ ];
+
+ postInstall = ''
+ installShellCompletion --bash contrib/bash_completion.d/redo
+ '';
+
+ meta = with lib; {
+ description = "Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo";
+ homepage = "https://github.com/apenwarr/redo";
+ maintainers = with maintainers; [
+ andrewchambers
+ ck3d
+ ];
+ license = licenses.asl20;
+ platforms = python3.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
new file mode 100644
index 000000000000..f2c43cc5003c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
@@ -0,0 +1,10 @@
+CFLAGS=-Os
+
+all: redo links
+
+links:
+ sh links.do
+
+install:
+ mkdir -p "$(out)/bin"
+ cp --no-dereference redo redo-* "$(out)/bin"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
new file mode 100644
index 000000000000..1480f32a50f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+ pname = "redo-c";
+ version = "0.2";
+
+ src = fetchFromGitHub {
+ owner = "leahneukirchen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "11wc2sgw1ssdm83cjdc6ndnp1bv5mzhbw7njw47mk7ri1ic1x51b";
+ };
+
+ postPatch = ''
+ cp '${./Makefile}' Makefile
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An implementation of the redo build system in portable C with zero dependencies";
+ homepage = "https://github.com/leahneukirchen/redo-c";
+ license = licenses.cc0;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ ck3d ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
new file mode 100644
index 000000000000..315b74b820e5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, makeWrapper, coreutils }:
+
+stdenv.mkDerivation {
+ version = "4.0.3";
+ pname = "redo-sh";
+
+ src = fetchurl {
+ url = "http://news.dieweltistgarnichtso.net/bin/archives/redo-sh.tar.gz";
+ sha256 = "1n84ld4fihqa7a6kn3f177dknz89qcvissfwz1m21bwdq950avia";
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ sourceRoot = ".";
+ installPhase = ''
+ mkdir -p "$out/share"
+ mv man "$out/share"
+ mv bin "$out"
+ for p in $out/bin/*; do
+ wrapProgram "$p" --prefix PATH : "$out/bin:${coreutils}/bin"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Redo implementation in Bourne Shell";
+ homepage = "http://news.dieweltistgarnichtso.net/bin/redo-sh.html";
+ license = licenses.agpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ sternenseemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo/default.nix
new file mode 100644
index 000000000000..a735a05dc5b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/redo/default.nix
@@ -0,0 +1,28 @@
+{stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+ name = "redo-1.4";
+ src = fetchurl {
+ url = "https://jdebp.eu./Repository/freebsd/${name}.tar.gz";
+ sha256 = "1c8gr5h77v4fw78zkhbm9z9adqs3kd7xvxwnmci2zvlf4bqqk4jv";
+ };
+
+ nativeBuildInputs = [ perl /* for pod2man */ ];
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ ./package/compile
+ '';
+ installPhase = ''
+ ./package/export $out/
+ '';
+
+ meta = {
+ homepage = "https://jdebp.eu./Softwares/redo/";
+ description = "A system for building target files from source files";
+ license = stdenv.lib.licenses.bsd2;
+ maintainers = [ stdenv.lib.maintainers.vrthra ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix
new file mode 100644
index 000000000000..7d44bc74df8a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, readline }:
+
+stdenv.mkDerivation rec {
+ pname = "remake";
+ remakeVersion = "4.1";
+ dbgVersion = "1.1";
+ version = "${remakeVersion}+dbg-${dbgVersion}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/bashdb/remake/${version}/remake-${remakeVersion}+dbg${dbgVersion}.tar.bz2";
+ sha256 = "1zi16pl7sqn1aa8b7zqm9qnd9vjqyfywqm8s6iap4clf86l7kss2";
+ };
+
+ patches = [
+ ./glibc-2.27-glob.patch
+ ];
+
+ buildInputs = [ readline ];
+
+ meta = {
+ homepage = "http://bashdb.sourceforge.net/remake/";
+ license = stdenv.lib.licenses.gpl3;
+ description = "GNU Make with comprehensible tracing and a debugger";
+ platforms = with stdenv.lib.platforms; linux ++ darwin;
+ maintainers = with stdenv.lib.maintainers; [ bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
new file mode 100644
index 000000000000..ef876e2fb237
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/remake/glibc-2.27-glob.patch
@@ -0,0 +1,34 @@
+diff --git a/glob/glob.c b/glob/glob.c
+index f3911bcd861..6cb76e8e162 100644
+--- a/glob/glob.c
++++ b/glob/glob.c
+@@ -208,29 +208,8 @@ my_realloc (p, n)
+ #endif /* __GNU_LIBRARY__ || __DJGPP__ */
+
+
+-#if !defined __alloca && !defined __GNU_LIBRARY__
+-
+-# ifdef __GNUC__
+-# undef alloca
+-# define alloca(n) __builtin_alloca (n)
+-# else /* Not GCC. */
+-# ifdef HAVE_ALLOCA_H
+-# include <alloca.h>
+-# else /* Not HAVE_ALLOCA_H. */
+-# ifndef _AIX
+-# ifdef WINDOWS32
+-# include <malloc.h>
+-# else
+-extern char *alloca ();
+-# endif /* WINDOWS32 */
+-# endif /* Not _AIX. */
+-# endif /* sparc or HAVE_ALLOCA_H. */
+-# endif /* GCC. */
+-
+ # define __alloca alloca
+
+-#endif
+-
+ #ifndef __GNU_LIBRARY__
+ # define __stat stat
+ # ifdef STAT_MACROS_BROKEN
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
new file mode 100644
index 000000000000..ae2e63e040b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "rocm-cmake";
+ version = "3.8.0";
+
+ src = fetchFromGitHub {
+ owner = "RadeonOpenCompute";
+ repo = "rocm-cmake";
+ rev = "rocm-${version}";
+ sha256 = "1x1mj1acarhin319zycms8sqm9ylw2mcdbkpqjlb8yfsgiaa99ja";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "CMake modules for common build tasks for the ROCm stack";
+ homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
+ license = licenses.mit;
+ maintainers = with maintainers; [ danieldk ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/samurai/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/samurai/default.nix
new file mode 100644
index 000000000000..f8b649e04093
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/samurai/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "samurai";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "michaelforney";
+ repo = pname;
+ rev = version;
+ sha256 = "0k0amxpi3v9v68a8vc69r4b86xs12vhzm0wxd7f11vap1pnqz2cz";
+ };
+
+ makeFlags = [ "DESTDIR=" "PREFIX=${placeholder "out"}" ];
+
+ meta = with stdenv.lib; {
+ description = "ninja-compatible build tool written in C";
+ homepage = "https://github.com/michaelforney/samurai";
+ license = with licenses; [ mit asl20 ]; # see LICENSE
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
new file mode 100644
index 000000000000..49d18d9e8575
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, which, curl, makeWrapper, jdk }:
+
+let
+ rev = "1e9230f35879ce23cbd8d16add07d2134fd479c9";
+ version = "2020-09-24";
+in
+stdenv.mkDerivation {
+ name = "sbt-extras-${version}";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "paulp";
+ repo = "sbt-extras";
+ inherit rev;
+ sha256 = "1k6vknjjbhr5jfpiyh2yzayn2ziqi1bb862l1q2786q59161ij3j";
+ };
+
+ dontBuild = true;
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ substituteInPlace bin/sbt --replace 'declare java_cmd="java"' 'declare java_cmd="${jdk}/bin/java"'
+
+ install bin/sbt $out/bin
+
+ wrapProgram $out/bin/sbt --prefix PATH : ${stdenv.lib.makeBinPath [ which curl ]}
+ '';
+
+ meta = {
+ description = "A more featureful runner for sbt, the simple/scala/standard build tool";
+ homepage = "https://github.com/paulp/sbt-extras";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
new file mode 100644
index 000000000000..2ff15d68871a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, jre, autoPatchelfHook, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "sbt";
+ version = "1.4.0";
+
+ src = fetchurl {
+ url =
+ "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
+ sha256 = "1mgfs732w1c1p7dna7h47x8h073lvjs224fqlpkkvq10153mnxxl";
+ };
+
+ patchPhase = ''
+ echo -java-home ${jre.home} >>conf/sbtopts
+ '';
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ zlib ];
+
+ installPhase = ''
+ mkdir -p $out/share/sbt $out/bin
+ cp -ra . $out/share/sbt
+ ln -sT ../share/sbt/bin/sbt $out/bin/sbt
+ ln -sT ../share/sbt/bin/sbtn-x86_64-${
+ if (stdenv.isDarwin) then "apple-darwin" else "pc-linux"
+ } $out/bin/sbtn
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.scala-sbt.org/";
+ license = licenses.bsd3;
+ description = "A build tool for Scala, Java and more";
+ maintainers = with maintainers; [ nequissimus ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix
new file mode 100644
index 000000000000..70038ed2d3a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/sbt/scala-native.nix
@@ -0,0 +1,18 @@
+{ lib, sbt, makeWrapper, boehmgc, libunwind, re2, llvmPackages, zlib }:
+
+sbt.overrideDerivation(old: {
+ nativeBuildInputs = [ makeWrapper ];
+
+ version = "0.13.16";
+
+ sha256 = "033nvklclvbirhpsiy28d3ccmbm26zcs9vb7j8jndsc1ln09awi2";
+
+ postFixup = ''
+ wrapProgram $out/bin/sbt \
+ --set CLANG_PATH "${llvmPackages.clang}/bin/clang" \
+ --set CLANGPP_PATH "${llvmPackages.clang}/bin/clang" \
+ --set CPATH "${lib.makeSearchPathOutput "dev" "include" [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}/c++/v1" \
+ --set LIBRARY_PATH "${lib.makeLibraryPath [ re2 zlib boehmgc libunwind llvmPackages.libcxxabi llvmPackages.libcxx ]}" \
+ --set NIX_CFLAGS_LINK "-lc++abi -lc++"
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
new file mode 100644
index 000000000000..7a15c193423c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
@@ -0,0 +1,40 @@
+{ version, sha256 }:
+
+{ stdenv, fetchurl, python3Packages, lib }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "scons";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/scons/${pname}-${version}.tar.gz";
+ inherit sha256;
+ };
+
+ setupHook = ./setup-hook.sh;
+
+ postPatch = lib.optionalString (lib.versionAtLeast version "4.0.0") ''
+ substituteInPlace setup.cfg \
+ --replace "build/dist" "dist"
+ '';
+
+ # The release tarballs don't contain any tests (runtest.py and test/*):
+ doCheck = lib.versionOlder version "4.0.0";
+
+ meta = with stdenv.lib; {
+ description = "An improved, cross-platform substitute for Make";
+ longDescription = ''
+ SCons is an Open Source software construction tool. Think of
+ SCons as an improved, cross-platform substitute for the classic
+ Make utility with integrated functionality similar to
+ autoconf/automake and compiler caches such as ccache. In short,
+ SCons is an easier, more reliable and faster way to build
+ software.
+ '';
+ homepage = "https://scons.org/";
+ changelog = "https://raw.githubusercontent.com/SConsProject/scons/rel_${version}/src/CHANGES.txt";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix
new file mode 100644
index 000000000000..eb86d5955971
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix
@@ -0,0 +1,18 @@
+{ callPackage, python2Packages }:
+
+let
+ mkScons = args: callPackage (import ./common.nix args) { };
+in {
+ scons_3_0_1 = (mkScons {
+ version = "3.0.1";
+ sha256 = "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4";
+ }).override { python3Packages = python2Packages; };
+ scons_3_1_2 = (mkScons {
+ version = "3.1.2";
+ sha256 = "1yzq2gg9zwz9rvfn42v5jzl3g4qf1khhny6zfbi2hib55zvg60bq";
+ }).override { python3Packages = python2Packages; };
+ scons_latest = mkScons {
+ version = "4.0.1";
+ sha256 = "0z00l9wzaiqyjq0hapbvsjclvcfjjjq04kmxi7ffq966nl2d2bkj";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh
new file mode 100644
index 000000000000..0b908f68286b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/scons/setup-hook.sh
@@ -0,0 +1,84 @@
+sconsBuildPhase() {
+ runHook preBuild
+
+ if [ -n "$prefix" ]; then
+ mkdir -p "$prefix"
+ fi
+
+ if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
+ buildFlags="${prefixKey:-prefix=}$prefix $buildFlags"
+ fi
+
+ local flagsArray=(
+ ${enableParallelBuilding:+-j${NIX_BUILD_CORES}}
+ $sconsFlags ${sconsFlagsArray[@]}
+ $buildFlags ${buildFlagsArray[@]}
+ )
+
+ echoCmd 'build flags' "${flagsArray[@]}"
+ scons "${flagsArray[@]}"
+
+ runHook postBuild
+}
+
+sconsInstallPhase() {
+ runHook preInstall
+
+ if [ -n "$prefix" ]; then
+ mkdir -p "$prefix"
+ fi
+
+ if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
+ installFlags="${prefixKey:-prefix=}$prefix $installFlags"
+ fi
+
+ local flagsArray=(
+ $sconsFlags ${sconsFlagsArray[@]}
+ $installFlags ${installFlagsArray[@]}
+ ${installTargets:-install}
+ )
+
+ echoCmd 'install flags' "${flagsArray[@]}"
+ scons "${flagsArray[@]}"
+
+ runHook postInstall
+}
+
+sconsCheckPhase() {
+ runHook preCheck
+
+ if [ -z "${checkTarget:-}" ]; then
+ if scons -n check >/dev/null 2>&1; then
+ checkTarget=check
+ elif scons -n test >/dev/null 2>&1; then
+ checkTarget=test
+ fi
+ fi
+
+ if [ -z "${checkTarget:-}" ]; then
+ echo "no check/test target found, doing nothing"
+ else
+ local flagsArray=(
+ ${enableParallelChecking:+-j${NIX_BUILD_CORES}}
+ $sconsFlags ${sconsFlagsArray[@]}
+ ${checkFlagsArray[@]}
+ )
+
+ echoCmd 'check flags' "${flagsArray[@]}"
+ scons "${flagsArray[@]}"
+ fi
+
+ runHook postCheck
+}
+
+if [ -z "${buildPhase-}" ]; then
+ buildPhase=sconsBuildPhase
+fi
+
+if [ -z "${dontUseSconsInstall-}" -a -z "${installPhase-}" ]; then
+ installPhase=sconsInstallPhase
+fi
+
+if [ -z "${checkPhase-}" ]; then
+ checkPhase=sconsCheckPhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
new file mode 100644
index 000000000000..53bc057fc131
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, crystal }:
+
+crystal.buildCrystalPackage rec {
+ pname = "shards";
+ version = "0.10.0";
+
+ src = fetchFromGitHub {
+ owner = "crystal-lang";
+ repo = "shards";
+ rev = "v${version}";
+ sha256 = "1bjy3hcdqq8769bx73f3pwn26rnkj23dngyfbw4iv32bw23x1d49";
+ };
+
+ # we cannot use `make` here as it would introduce a dependency on itself
+ format = "crystal";
+
+ shardsFile = ./shards.nix;
+
+ crystalBinaries.shards.src = "./src/shards.cr";
+
+ # tries to execute git which fails spectacularly
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Dependency manager for the Crystal language";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ peterhoeg ];
+ inherit (crystal.meta) homepage platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix
new file mode 100644
index 000000000000..901b7f6e47d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/shards/shards.nix
@@ -0,0 +1,8 @@
+{
+ molinillo = {
+ owner = "crystal-lang";
+ repo = "crystal-molinillo";
+ rev = "v0.1.0";
+ sha256 = "0rs0w59m6ccsgkdxfy3xv6alxsziy9sy9smz71cz0dnyvlzlnaxj";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix
new file mode 100644
index 000000000000..80ee38105ca5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub, fuse, pkgconfig, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "tup";
+ version = "0.7.9";
+
+ src = fetchFromGitHub {
+ owner = "gittup";
+ repo = "tup";
+ rev = "v${version}";
+ sha256 = "1b9rllwfdmjvfmwvzqfbqfi1flf4y9zzjmyp0dizq23gpkvhi42f";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ fuse pcre ];
+
+ configurePhase = ''
+ sed -i 's/`git describe`/v${version}/g' src/tup/link.sh
+ sed -i 's/pcre-confg/pkg-config pcre/g' Tupfile Tuprules.tup
+ '';
+
+ # Regular tup builds require fusermount to have suid, which nix cannot
+ # currently provide in a build environment, so we bootstrap and use 'tup
+ # generate' instead
+ buildPhase = ''
+ ./build.sh
+ ./build/tup init
+ ./build/tup generate script.sh
+ ./script.sh
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp tup $out/bin/
+
+ mkdir -p $out/share/man/man1
+ cp tup.1 $out/share/man/man1/
+ '';
+
+ setupHook = ./setup-hook.sh;
+
+ meta = with stdenv.lib; {
+ description = "A fast, file-based build system";
+ longDescription = ''
+ Tup is a file-based build system for Linux, OSX, and Windows. It inputs a list
+ of file changes and a directed acyclic graph (DAG), then processes the DAG to
+ execute the appropriate commands required to update dependent files. Updates are
+ performed with very little overhead since tup implements powerful build
+ algorithms to avoid doing unnecessary work. This means you can stay focused on
+ your project rather than on your build system.
+ '';
+ homepage = "http://gittup.org/tup/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ehmry ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/setup-hook.sh
new file mode 100644
index 000000000000..5bf64ae59d35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/tup/setup-hook.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+tupConfigurePhase() {
+ runHook preConfigure
+
+ echo -n CONFIG_TUP_ARCH= >> tup.config
+ case "$system" in
+ "i686-*") echo i386 >> tup.config;;
+ "x86_64-*") echo x86_64 >> tup.config;;
+ "powerpc-*") echo powerpc >> tup.config;;
+ "powerpc64-*") echo powerpc64 >> tup.config;;
+ "ia64-*") echo ia64 >> tup.config;;
+ "alpha-*") echo alpha >> tup.config;;
+ "sparc-*") echo sparc >> tup.config;;
+ "aarch64-*") echo arm64 >> tup.config;;
+ "arm*") echo arm >> tup.config;;
+ esac
+
+ echo "${tupConfig-}" >> tup.config
+
+ tup init
+ tup generate tupBuild.sh
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseTupConfigure-}" -a -z "${configurePhase-}" ]; then
+ configurePhase=tupConfigurePhase
+fi
+
+
+tupBuildPhase() {
+ runHook preBuild
+
+ pushd .
+ . tupBuild.sh
+ popd
+
+ runHook postBuild
+}
+
+if [ -z "${dontUseTupBuild-}" -a -z "${buildPhase-}" ]; then
+ buildPhase=tupBuildPhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix
new file mode 100644
index 000000000000..49aae7c30140
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/waf/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitLab, python, ensureNewerSourcesForZipFilesHook
+# optional list of extra waf tools, e.g. `[ "doxygen" "pytest" ]`
+, withTools ? null
+}:
+let
+ wafToolsArg = with stdenv.lib.strings;
+ optionalString (!isNull withTools) " --tools=\"${concatStringsSep "," withTools}\"";
+in
+stdenv.mkDerivation rec {
+ pname = "waf";
+ version = "2.0.20";
+
+ src = fetchFromGitLab {
+ owner = "ita1024";
+ repo = "waf";
+ rev = "${pname}-${version}";
+ sha256 = "1xbd1lmchq9pdrplkr2db28xqafyw753qbhnrfn8pxdg3inxxqvq";
+ };
+
+ buildInputs = [ python ensureNewerSourcesForZipFilesHook ];
+
+ configurePhase = ''
+ python waf-light configure
+ '';
+ buildPhase = ''
+ python waf-light build${wafToolsArg}
+ '';
+ installPhase = ''
+ install -D waf $out/bin/waf
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Meta build system";
+ homepage = "https://waf.io";
+ license = licenses.bsd3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix
new file mode 100644
index 000000000000..4184bd5fe8cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/default.nix
@@ -0,0 +1,10 @@
+{ lib, stdenv, pkgs, python, makeSetupHook, waf }:
+
+makeSetupHook {
+ deps = [ python ];
+ substitutions = {
+ inherit waf;
+ crossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system)
+ ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"'';
+ };
+} ./setup-hook.sh
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
new file mode 100644
index 000000000000..439350c3abc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
@@ -0,0 +1,75 @@
+wafConfigurePhase() {
+ runHook preConfigure
+
+ if ! [ -f "${wafPath:=./waf}" ]; then
+ echo "copying waf to $wafPath..."
+ cp @waf@/bin/waf "$wafPath"
+ fi
+
+ if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then
+ wafConfigureFlags="${prefixKey:---prefix=}$prefix $wafConfigureFlags"
+ fi
+
+ local flagsArray=(
+ "${flagsArray[@]}"
+ $wafConfigureFlags "${wafConfigureFlagsArray[@]}"
+ ${configureTargets:-configure}
+ )
+ if [ -z "${dontAddWafCrossFlags:-}" ]; then
+ flagsArray+=(@crossFlags@)
+ fi
+ echoCmd 'configure flags' "${flagsArray[@]}"
+ python "$wafPath" "${flagsArray[@]}"
+
+ runHook postConfigure
+}
+
+if [ -z "${dontUseWafConfigure-}" -a -z "${configurePhase-}" ]; then
+ configurePhase=wafConfigurePhase
+fi
+
+wafBuildPhase () {
+ runHook preBuild
+
+ # set to empty if unset
+ : ${wafFlags=}
+
+ local flagsArray=(
+ ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}}
+ $wafFlags ${wafFlagsArray[@]}
+ $buildFlags ${buildFlagsArray[@]}
+ ${buildTargets:-build}
+ )
+
+ echoCmd 'build flags' "${flagsArray[@]}"
+ python "$wafPath" "${flagsArray[@]}"
+
+ runHook postBuild
+}
+
+if [ -z "${dontUseWafBuild-}" -a -z "${buildPhase-}" ]; then
+ buildPhase=wafBuildPhase
+fi
+
+wafInstallPhase() {
+ runHook preInstall
+
+ if [ -n "$prefix" ]; then
+ mkdir -p "$prefix"
+ fi
+
+ local flagsArray=(
+ $wafFlags ${wafFlagsArray[@]}
+ $installFlags ${installFlagsArray[@]}
+ ${installTargets:-install}
+ )
+
+ echoCmd 'install flags' "${flagsArray[@]}"
+ python "$wafPath" "${flagsArray[@]}"
+
+ runHook postInstall
+}
+
+if [ -z "${dontUseWafInstall-}" -a -z "${installPhase-}" ]; then
+ installPhase=wafInstallPhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/default.nix
new file mode 100644
index 000000000000..666437126a71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-md2man
+, installShellFiles
+, pkg-config
+, gpgme
+, lvm2
+, btrfs-progs
+, libapparmor
+, libselinux
+, libseccomp
+}:
+
+buildGoModule rec {
+ pname = "buildah";
+ version = "1.16.4";
+
+ src = fetchFromGitHub {
+ owner = "containers";
+ repo = "buildah";
+ rev = "v${version}";
+ sha256 = "1i7v4chbgl15n3vn1liinjd4lxaxk9q2lyi1l2ak7iazx9px6cn9";
+ };
+
+ outputs = [ "out" "man" ];
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ nativeBuildInputs = [ go-md2man installShellFiles pkg-config ];
+
+ buildInputs = [
+ btrfs-progs
+ gpgme
+ libapparmor
+ libseccomp
+ libselinux
+ lvm2
+ ];
+
+ buildPhase = ''
+ patchShebangs .
+ make bin/buildah GIT_COMMIT="unknown"
+ make -C docs GOMD2MAN="${go-md2man}/bin/go-md2man"
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/buildah $out/bin/buildah
+ installShellCompletion --bash contrib/completions/bash/buildah
+ make -C docs install PREFIX="$man"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool which facilitates building OCI images";
+ homepage = "https://buildah.io/";
+ changelog = "https://github.com/containers/buildah/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Profpatsch ] ++ teams.podman.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/wrapper.nix
new file mode 100644
index 000000000000..bdc48bd6b1f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/buildah/wrapper.nix
@@ -0,0 +1,52 @@
+{ buildah-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, buildah
+, runc # Default container runtime
+, crun # Container runtime (default with cgroups v2 for podman/buildah)
+, conmon # Container runtime monitor
+, slirp4netns # User-mode networking for unprivileged namespaces
+, fuse-overlayfs # CoW for images, much faster than default vfs
+, utillinux # nsenter
+, cni-plugins # not added to path
+, iptables
+}:
+
+let
+ buildah = buildah-unwrapped;
+
+ binPath = lib.makeBinPath ([
+ runc
+ crun
+ conmon
+ slirp4netns
+ fuse-overlayfs
+ utillinux
+ iptables
+ ] ++ extraPackages);
+
+in runCommand buildah.name {
+ name = "${buildah.pname}-wrapper-${buildah.version}";
+ inherit (buildah) pname version;
+
+ meta = builtins.removeAttrs buildah.meta [ "outputsToInstall" ];
+
+ outputs = [
+ "out"
+ "man"
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+} ''
+ ln -s ${buildah.man} $man
+
+ mkdir -p $out/bin
+ ln -s ${buildah-unwrapped}/share $out/share
+ makeWrapper ${buildah-unwrapped}/bin/buildah $out/bin/buildah \
+ --prefix PATH : ${binPath}
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/buildkit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/buildkit/default.nix
new file mode 100644
index 000000000000..d4c143b0bd02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "buildkit";
+ version = "0.7.2";
+
+ goPackagePath = "github.com/moby/buildkit";
+ subPackages = [ "cmd/buildctl" ] ++ stdenv.lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
+
+ src = fetchFromGitHub {
+ owner = "moby";
+ repo = "buildkit";
+ rev = "v${version}";
+ sha256 = "0kn2ad0rh3xlcxjxslkyrfxhv3cx88996nhxn86605x1mybxb2iq";
+ };
+
+ buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
+
+ meta = with stdenv.lib; {
+ description = "Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit";
+ homepage = "https://github.com/moby/buildkit";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ vdemeester marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/buildpack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/buildpack/default.nix
new file mode 100644
index 000000000000..1d8e53ba5256
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/buildpack/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "pack";
+ version = "0.13.0";
+
+ src = fetchFromGitHub {
+ owner = "buildpacks";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0h7lgsg5d74pfa15kx0y3ngnvmz64znqk2k73iyjya9pi9h8hh88";
+ };
+
+ vendorSha256 = "1c38g169kq9kv6x0x1rlg39ywbc1q66fndby0v85b3ri3xb52869";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ subPackages = [ "cmd/pack" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/buildpacks/pack.Version=${version}" ];
+
+ postInstall = ''
+ installShellCompletion --bash --name pack.bash $(PACK_HOME=$PWD $out/bin/pack completion --shell bash)
+ installShellCompletion --zsh --name _pack $(PACK_HOME=$PWD $out/bin/pack completion --shell zsh)
+ '';
+
+ meta = with lib; {
+ homepage = "https://buildpacks.io/";
+ changelog = "https://github.com/buildpacks/pack/releases/tag/v${version}";
+ description = "CLI for building apps using Cloud Native Buildpacks";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile
new file mode 100644
index 000000000000..aa42f75c95cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'cadre', '=1.0.4'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile.lock
new file mode 100644
index 000000000000..5d22e69f31c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ cadre (1.0.4)
+ thor (>= 0.14, < 1.0)
+ tilt (> 1.0)
+ valise (~> 1.2)
+ thor (0.20.3)
+ tilt (2.0.9)
+ valise (1.2.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ cadre (= 1.0.4)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/default.nix
new file mode 100644
index 000000000000..17b505bf2a9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "cadre";
+ gemdir = ./.;
+ exes = [ "cadre" ];
+
+ passthru.updateScript = bundlerUpdateScript "cadre";
+
+ meta = with lib; {
+ description = "Toolkit to add Ruby development - in-editor coverage, libnotify of test runs";
+ homepage = "https://github.com/nyarly/cadre";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nyarly nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/gemset.nix
new file mode 100644
index 000000000000..33fd428debf2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cadre/gemset.nix
@@ -0,0 +1,35 @@
+{
+ cadre = {
+ dependencies = ["thor" "tilt" "valise"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07q60s1bm2xar46g00ls5fjkn6dm2kfxhsz9ayblc31x5kr8d83a";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ thor = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+ type = "gem";
+ };
+ version = "0.20.3";
+ };
+ tilt = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ca4k0clwf0rkvy7726x4nxpjxkpv67w043i39saxgldxd97zmwz";
+ type = "gem";
+ };
+ version = "2.0.9";
+ };
+ valise = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1arsbmk2gifrhv244qrld7s3202xrnxy6vlc5gqklg70dpsinbn5";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
new file mode 100644
index 000000000000..feaa3c312f48
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, makeWrapper, perf
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-flamegraph";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "flamegraph-rs";
+ repo = "flamegraph";
+ rev = "v${version}";
+ sha256 = "0d6k2qr76p93na39j4zbcpc9kaswd806wrqhcwisqxdrcxrjbwhk";
+ };
+
+ cargoSha256 = "1qz4a1b58j3bv3akqvc3bcgvqq4bi8cbm3gzws6a52dz7ycrgq46";
+
+ nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
+ buildInputs = lib.optionals stdenv.isDarwin [
+ Security
+ ];
+
+ postFixup = lib.optionalString stdenv.isLinux ''
+ wrapProgram $out/bin/cargo-flamegraph \
+ --suffix PATH ':' ${perf}/bin
+ wrapProgram $out/bin/flamegraph \
+ --suffix PATH ':' ${perf}/bin
+ '';
+
+ meta = with lib; {
+ description = "Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3";
+ homepage = "https://github.com/ferrous-systems/flamegraph";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ killercup ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-web/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-web/default.nix
new file mode 100644
index 000000000000..3008c15d848a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cargo-web/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, openssl, perl, pkgconfig, rustPlatform
+, CoreServices, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-web";
+ version = "0.6.26";
+
+ src = fetchFromGitHub {
+ owner = "koute";
+ repo = pname;
+ rev = version;
+ sha256 = "1dl5brj5fnmxmwl130v36lvy4j64igdpdvjwmxw3jgg2c6r6b7cd";
+ };
+
+ cargoSha256 = "0i9xp7vd1rp6xgkbbrspm3qq4hxwfwa00di3k73z1x64d3d8r5fm";
+
+ nativeBuildInputs = [ openssl perl pkgconfig ];
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
+
+ meta = with stdenv.lib; {
+ description = "A Cargo subcommand for the client-side Web";
+ homepage = "https://github.com/koute/cargo-web";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ kevincox ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cask/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cask/default.nix
new file mode 100644
index 000000000000..710503560691
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cask/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, python, emacsPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "cask";
+
+ inherit (emacsPackages.melpaStablePackages.cask) src version;
+
+ doCheck = true;
+
+ nativeBuildInputs = [ emacsPackages.emacs ];
+ buildInputs = with emacsPackages; [
+ s f dash ansi ecukes servant ert-runner el-mock
+ noflet ert-async shell-split-string git package-build
+ ] ++ [
+ python
+ ];
+
+ buildPhase = ''
+ emacs --batch -L . -f batch-byte-compile cask.el cask-cli.el
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/templates
+ mkdir -p $out/share/emacs/site-lisp/cask/bin
+ install -Dm644 *.el *.elc $out/share/emacs/site-lisp/cask
+ install -Dm755 bin/cask $out/share/emacs/site-lisp/cask/bin
+ install -Dm644 templates/* $out/templates/
+ touch $out/.no-upgrade
+ ln -s $out/share/emacs/site-lisp/cask/bin/cask $out/bin/cask
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Project management for Emacs";
+ longDescription = ''
+ Cask is a project management tool for Emacs that helps automate the
+ package development cycle; development, dependencies, testing, building,
+ packaging and more.
+ Cask can also be used to manage dependencies for your local Emacs configuration.
+ '';
+
+ homepage = "https://cask.readthedocs.io/en/latest/index.html";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.flexw ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/castxml/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/castxml/default.nix
new file mode 100644
index 000000000000..0a455b4d7cdf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/castxml/default.nix
@@ -0,0 +1,52 @@
+{ lib, stdenv, fetchFromGitHub
+, pythonPackages
+, cmake
+, llvmPackages
+, libffi, libxml2, zlib
+, withMan ? true
+}:
+stdenv.mkDerivation rec {
+
+ pname = "CastXML";
+ version = "0.3.4";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ypj67xrgj228myp7l1gsjw1ja97q68nmj98dsd33srmiayqraj4";
+ };
+
+ nativeBuildInputs = [ cmake ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ];
+
+ clangVersion = lib.getVersion llvmPackages.clang;
+
+ cmakeFlags = [
+ "-DCLANG_RESOURCE_DIR=${llvmPackages.clang-unwrapped}/lib/clang/${clangVersion}/"
+ "-DSPHINX_MAN=${if withMan then "ON" else "OFF"}"
+ ];
+
+ buildInputs = [
+ llvmPackages.clang-unwrapped
+ llvmPackages.llvm
+ libffi libxml2 zlib
+ ];
+
+ propagatedBuildInputs = [ llvmPackages.libclang ];
+
+ # 97% tests passed, 97 tests failed out of 2881
+ # mostly because it checks command line and nix append -isystem and all
+ doCheck = false;
+ checkPhase = ''
+ # -E exclude 4 tests based on names
+ # see https://github.com/CastXML/CastXML/issues/90
+ ctest -E 'cmd.cc-(gnu|msvc)-((c-src-c)|(src-cxx))-cmd'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/CastXML/CastXML";
+ license = licenses.asl20;
+ description = "Abstract syntax tree XML output tool";
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile
new file mode 100644
index 000000000000..798e507460eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'cbor-diag'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile.lock
new file mode 100644
index 000000000000..8bebc81ebd9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ cbor-diag (0.5.6)
+ json
+ neatjson
+ treetop (~> 1)
+ json (2.2.0)
+ neatjson (0.9)
+ polyglot (0.3.5)
+ treetop (1.6.10)
+ polyglot (~> 0.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ cbor-diag
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/default.nix
new file mode 100644
index 000000000000..118197af2d1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/default.nix
@@ -0,0 +1,31 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "cbor-diag";
+
+ gemdir = ./.;
+
+ exes = [
+ "cbor2diag.rb"
+ "cbor2json.rb"
+ "cbor2pretty.rb"
+ "cbor2yaml.rb"
+ "diag2cbor.rb"
+ "diag2pretty.rb"
+ "json2cbor.rb"
+ "json2pretty.rb"
+ "pretty2cbor.rb"
+ "pretty2diag.rb"
+ "yaml2cbor.rb"
+ ];
+
+ passthru.updateScript = bundlerUpdateScript "cbor-diag";
+
+ meta = with lib; {
+ description = "CBOR diagnostic utilities";
+ homepage = "https://github.com/cabo/cbor-diag";
+ license = with licenses; asl20;
+ maintainers = with maintainers; [ fdns nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/gemset.nix
new file mode 100644
index 000000000000..49de5b06f543
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cbor-diag/gemset.nix
@@ -0,0 +1,54 @@
+{
+ cbor-diag = {
+ dependencies = ["json" "neatjson" "treetop"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pd0k4malg1l7w3ck5glh9w0hrsvknk8rp32vrir74yww1g6yplv";
+ type = "gem";
+ };
+ version = "0.5.6";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ neatjson = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fa2v7b6433j0iqh5iq9r71v7a5xabgjvqwsbl21vcsac7vf3ncw";
+ type = "gem";
+ };
+ version = "0.9";
+ };
+ polyglot = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ treetop = {
+ dependencies = ["polyglot"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+ type = "gem";
+ };
+ version = "1.6.10";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix
new file mode 100644
index 000000000000..abf5845b7e9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ccloud-cli/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, autoPatchelfHook, fetchurl, lib }:
+
+stdenv.mkDerivation rec {
+ pname = "ccloud-cli";
+ version = "0.202.0";
+
+ # To get the latest version:
+ # curl -L 'https://s3-us-west-2.amazonaws.com/confluent.cloud?prefix=ccloud-cli/archives/&delimiter=/' | nix run nixpkgs.libxml2 -c xmllint --format -
+ src = fetchurl (if stdenv.hostPlatform.isDarwin then {
+ url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_darwin_amd64.tar.gz";
+ sha256 = "1w7c7fwpjj6f26nmcgm6rkrl4v9zhdpygkh02la77n23lg8wxah5";
+ } else {
+ url = "https://s3-us-west-2.amazonaws.com/confluent.cloud/ccloud-cli/archives/${version}/ccloud_v${version}_linux_amd64.tar.gz";
+ sha256 = "1xbhv2viw8cbwv03rfq99jddnw5lwy812a8xby348290l323xi89";
+ });
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/doc/ccloud-cli}
+ cp ccloud $out/bin/
+ cp LICENSE $out/share/doc/ccloud-cli/
+ cp -r legal $out/share/doc/ccloud-cli/
+ '';
+
+ meta = with lib; {
+ description = "Confluent Cloud CLI";
+ homepage = "https://docs.confluent.io/current/cloud/cli/index.html";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile
new file mode 100644
index 000000000000..2ba729084f1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'cddl'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile.lock
new file mode 100644
index 000000000000..796a7743cac5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/Gemfile.lock
@@ -0,0 +1,30 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ abnc (0.1.0)
+ cbor-diag (0.5.6)
+ json
+ neatjson
+ treetop (~> 1)
+ cddl (0.8.9)
+ abnc
+ cbor-diag
+ colorize
+ json
+ regexp-examples
+ colorize (0.8.1)
+ json (2.2.0)
+ neatjson (0.9)
+ polyglot (0.3.5)
+ regexp-examples (1.5.0)
+ treetop (1.6.10)
+ polyglot (~> 0.3)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ cddl
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/default.nix
new file mode 100644
index 000000000000..8fdae4b1c441
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/default.nix
@@ -0,0 +1,18 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "cddl";
+
+ gemdir = ./.;
+ exes = [ "cddl" ];
+
+ passthru.updateScript = bundlerUpdateScript "cddl";
+
+ meta = with lib; {
+ description = "A parser, generator, and validator for CDDL";
+ homepage = "https://rubygems.org/gems/cddl";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ fdns nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/gemset.nix
new file mode 100644
index 000000000000..a66833e27d9f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cddl/gemset.nix
@@ -0,0 +1,95 @@
+{
+ abnc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13nvzrk72nj130fs8bq8q3cfm48939rdzh7l31ncj5c4969hrbig";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ cbor-diag = {
+ dependencies = ["json" "neatjson" "treetop"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pd0k4malg1l7w3ck5glh9w0hrsvknk8rp32vrir74yww1g6yplv";
+ type = "gem";
+ };
+ version = "0.5.6";
+ };
+ cddl = {
+ dependencies = ["abnc" "cbor-diag" "colorize" "json" "regexp-examples"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16rmcrsxwx33pj25g1si0dhjdl2brfhy2vlpfwdb6qqkaikmzhpz";
+ type = "gem";
+ };
+ version = "0.8.9";
+ };
+ colorize = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sx97bm9by389rbzv8r1f43h06xcz8vwi3h5jv074gvparql7lcx";
+ type = "gem";
+ };
+ version = "2.2.0";
+ };
+ neatjson = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fa2v7b6433j0iqh5iq9r71v7a5xabgjvqwsbl21vcsac7vf3ncw";
+ type = "gem";
+ };
+ version = "0.9";
+ };
+ polyglot = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ regexp-examples = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08s5d327i9dw5yjwv9vfss3qb7lwasjyc75wvh7vrdi5v4vm1y2k";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ treetop = {
+ dependencies = ["polyglot"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+ type = "gem";
+ };
+ version = "1.6.10";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/cdecl-2.5-lex.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/cdecl-2.5-lex.patch
new file mode 100644
index 000000000000..ecdee5d544f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/cdecl-2.5-lex.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 1643b74..8f1ae11 100644
+--- a/Makefile
++++ b/Makefile
+@@ -33,7 +33,7 @@ c++decl: cdgram.c cdlex.c cdecl.c
+ rm -f cdecl
+
+ cdlex.c: cdlex.l
+- lex cdlex.l && mv lex.yy.c cdlex.c
++ flex cdlex.l && mv lex.yy.c cdlex.c
+
+ cdgram.c: cdgram.y
+ yacc cdgram.y && mv y.tab.c cdgram.c
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/default.nix
new file mode 100644
index 000000000000..7981681a6414
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cdecl/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, yacc, flex, readline, ncurses, gnused}:
+
+stdenv.mkDerivation {
+ name = "cdecl-2.5";
+ src = fetchurl {
+ url = "https://www.cdecl.org/files/cdecl-blocks-2.5.tar.gz";
+ sha256 = "1b7k0ra30hh8mg8fqv0f0yzkaac6lfg6n376drgbpxg4wwml1rly";
+ };
+
+ patches = [ ./cdecl-2.5-lex.patch ];
+ preBuild = ''
+ ${gnused}/bin/sed 's/getline/cdecl_getline/g' -i cdecl.c;
+ makeFlagsArray=(CFLAGS="-DBSD -DUSE_READLINE -std=gnu89" LIBS=-lreadline);
+ makeFlags="$makeFlags PREFIX=$out BINDIR=$out/bin MANDIR=$out/man1 CATDIR=$out/cat1 CC=$CC";
+ mkdir -p $out/bin;
+ '';
+ buildInputs = [yacc flex readline ncurses];
+
+ meta = {
+ description = "Translator English -- C/C++ declarations";
+ license = stdenv.lib.licenses.publicDomain;
+ maintainers = with stdenv.lib.maintainers; [joelteon];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/check/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/check/default.nix
new file mode 100644
index 000000000000..a28124828f90
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/check/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitLab
+}:
+
+buildGoPackage rec {
+ pname = "check-unstable";
+ version = "2018-09-12";
+ rev = "88db195993f8e991ad402754accd0635490769f9";
+
+ goPackagePath = "gitlab.com/opennota/check";
+
+ src = fetchFromGitLab {
+ inherit rev;
+
+ owner = "opennota";
+ repo = "check";
+ sha256 = "1983xmdkgpqda4qz8ashc6xv1zg5jl4zly3w566grxc5sfxpgf0i";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "A set of utilities for checking Go sources";
+ homepage = "https://gitlab.com/opennota/check";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/check/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/check/deps.nix
new file mode 100644
index 000000000000..b9c50d95d117
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/check/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "677d2ff680c1";
+ sha256 = "0vp1w1haqcjd82dxd6x9xrllbfwvm957rxwkpji96cgvhsli2bq5";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile
new file mode 100644
index 000000000000..47451c66d27f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile
@@ -0,0 +1,17 @@
+source 'https://rubygems.org'
+
+gem 'chef-dk', '4.7.73'
+gem 'pry'
+gem 'test-kitchen'
+gem 'inspec'
+gem 'kitchen-inspec'
+gem 'kitchen-vagrant'
+gem 'berkshelf'
+gem 'chef-vault'
+gem 'foodcritic'
+gem 'ohai'
+gem 'rubocop'
+gem 'knife-spork'
+gem 'fauxhai-ng'
+gem 'chefspec'
+gem 'chef-provisioning'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock
new file mode 100644
index 000000000000..ce23018bd738
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/Gemfile.lock
@@ -0,0 +1,726 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (5.2.4.1)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ addressable (2.5.2)
+ public_suffix (>= 2.0.2, < 4.0)
+ app_conf (0.4.2)
+ ast (2.4.0)
+ aws-eventstream (1.0.3)
+ aws-partitions (1.275.0)
+ aws-sdk-apigateway (1.36.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-apigatewayv2 (1.15.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-athena (1.22.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-autoscaling (1.22.0)
+ aws-sdk-core (~> 3, >= 3.52.1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-budgets (1.27.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudformation (1.30.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudhsm (1.19.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudhsmv2 (1.20.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudtrail (1.20.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudwatch (1.32.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-cloudwatchlogs (1.28.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codecommit (1.30.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codedeploy (1.27.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-codepipeline (1.28.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-configservice (1.40.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-core (3.90.1)
+ aws-eventstream (~> 1.0, >= 1.0.2)
+ aws-partitions (~> 1, >= 1.239.0)
+ aws-sigv4 (~> 1.1)
+ jmespath (~> 1.0)
+ aws-sdk-costandusagereportservice (1.18.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-dynamodb (1.43.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ec2 (1.144.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ecr (1.25.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ecs (1.57.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-eks (1.31.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticache (1.29.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticbeanstalk (1.26.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticloadbalancing (1.19.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticloadbalancingv2 (1.39.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-elasticsearchservice (1.30.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-firehose (1.24.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-iam (1.33.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kafka (1.17.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kinesis (1.20.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-kms (1.29.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-lambda (1.36.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-organizations (1.17.0)
+ aws-sdk-core (~> 3, >= 3.39.0)
+ aws-sigv4 (~> 1.0)
+ aws-sdk-rds (1.78.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-redshift (1.37.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53 (1.30.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53domains (1.18.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-route53resolver (1.11.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-s3 (1.60.2)
+ aws-sdk-core (~> 3, >= 3.83.0)
+ aws-sdk-kms (~> 1)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-securityhub (1.18.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ses (1.27.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sms (1.17.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sns (1.21.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-sqs (1.23.1)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sdk-ssm (1.71.0)
+ aws-sdk-core (~> 3, >= 3.71.0)
+ aws-sigv4 (~> 1.1)
+ aws-sigv4 (1.1.0)
+ aws-eventstream (~> 1.0, >= 1.0.2)
+ azure_graph_rbac (0.17.1)
+ ms_rest_azure (~> 0.11.0)
+ azure_mgmt_key_vault (0.17.5)
+ ms_rest_azure (~> 0.11.1)
+ azure_mgmt_resources (0.17.8)
+ ms_rest_azure (~> 0.11.1)
+ azure_mgmt_security (0.18.0)
+ ms_rest_azure (~> 0.11.1)
+ azure_mgmt_storage (0.19.2)
+ ms_rest_azure (~> 0.11.1)
+ backports (3.16.1)
+ bcrypt_pbkdf (1.0.1)
+ berkshelf (7.0.9)
+ chef (>= 13.6.52)
+ chef-config
+ cleanroom (~> 1.0)
+ concurrent-ruby (~> 1.0)
+ minitar (>= 0.6)
+ mixlib-archive (>= 0.4, < 2.0)
+ mixlib-config (>= 2.2.5)
+ mixlib-shellout (>= 2.0, < 4.0)
+ octokit (~> 4.0)
+ retryable (>= 2.0, < 4.0)
+ solve (~> 4.0)
+ thor (>= 0.20)
+ builder (3.2.4)
+ chef (15.8.23)
+ addressable
+ bcrypt_pbkdf (~> 1.0)
+ bundler (>= 1.10)
+ chef-config (= 15.8.23)
+ chef-utils (= 15.8.23)
+ chef-zero (>= 14.0.11)
+ diff-lcs (~> 1.2, >= 1.2.4)
+ ed25519 (~> 1.2)
+ erubis (~> 2.7)
+ ffi (~> 1.9, >= 1.9.25)
+ ffi-libarchive
+ ffi-yajl (~> 2.2)
+ highline (>= 1.6.9, < 2)
+ iniparse (~> 1.4)
+ license-acceptance (~> 1.0, >= 1.0.5)
+ mixlib-archive (>= 0.4, < 2.0)
+ mixlib-authentication (>= 2.1, < 4)
+ mixlib-cli (>= 2.1.1, < 3.0)
+ mixlib-log (>= 2.0.3, < 4.0)
+ mixlib-shellout (>= 3.0.3, < 4.0)
+ net-sftp (~> 2.1, >= 2.1.2)
+ net-ssh (>= 4.2, < 6)
+ net-ssh-multi (~> 1.2, >= 1.2.1)
+ ohai (~> 15.0)
+ plist (~> 3.2)
+ proxifier (~> 1.0)
+ syslog-logger (~> 1.6)
+ train-core (~> 3.1)
+ train-winrm (>= 0.2.5)
+ tty-screen (~> 0.6)
+ uuidtools (~> 2.1.5)
+ chef-cli (2.0.0)
+ addressable (>= 2.3.5, < 2.6)
+ chef (>= 14.0)
+ cookbook-omnifetch (~> 0.5)
+ diff-lcs (~> 1.0)
+ ffi-yajl (>= 1.0, < 3.0)
+ license-acceptance (~> 1.0, >= 1.0.11)
+ minitar (~> 0.6)
+ mixlib-cli (>= 1.7, < 3.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ paint (~> 1.0)
+ solve (> 2.0, < 5.0)
+ chef-config (15.8.23)
+ addressable
+ chef-utils (= 15.8.23)
+ fuzzyurl
+ mixlib-config (>= 2.2.12, < 4.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ tomlrb (~> 1.2)
+ chef-dk (4.7.73)
+ addressable (>= 2.3.5, < 2.6)
+ chef (~> 15.0)
+ cookbook-omnifetch (~> 0.5)
+ diff-lcs (~> 1.0)
+ ffi-yajl (>= 1.0, < 3.0)
+ license-acceptance (~> 1.0, >= 1.0.11)
+ minitar (~> 0.6)
+ mixlib-cli (>= 1.7, < 3.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ paint (~> 1.0)
+ solve (> 2.0, < 5.0)
+ chef-provisioning (2.7.6)
+ cheffish (>= 4.0, < 15.0)
+ inifile (>= 2.0.2)
+ mixlib-install (>= 1.0)
+ net-scp (~> 1.0)
+ net-ssh (>= 2.9, < 5.0)
+ net-ssh-gateway (> 1.2, < 3.0)
+ winrm (~> 2.0)
+ winrm-elevated (~> 1.0)
+ winrm-fs (~> 1.0)
+ chef-telemetry (1.0.3)
+ chef-config
+ concurrent-ruby (~> 1.0)
+ ffi-yajl (~> 2.2)
+ http (~> 2.2)
+ chef-utils (15.8.23)
+ chef-vault (4.0.1)
+ chef-zero (14.0.17)
+ ffi-yajl (~> 2.2)
+ hashie (>= 2.0, < 4.0)
+ mixlib-log (>= 2.0, < 4.0)
+ rack (~> 2.0, >= 2.0.6)
+ uuidtools (~> 2.1)
+ cheffish (14.0.13)
+ chef-zero (~> 14.0)
+ net-ssh
+ chefspec (9.1.0)
+ chef (>= 14)
+ chef-cli
+ fauxhai-ng (>= 7.5)
+ rspec (~> 3.0)
+ cleanroom (1.0.0)
+ coderay (1.1.2)
+ concurrent-ruby (1.1.6)
+ cookbook-omnifetch (0.9.1)
+ mixlib-archive (>= 0.4, < 2.0)
+ cucumber-core (3.2.1)
+ backports (>= 3.8.0)
+ cucumber-tag_expressions (~> 1.1.0)
+ gherkin (~> 5.0)
+ cucumber-tag_expressions (1.1.1)
+ declarative (0.0.10)
+ declarative-option (0.1.0)
+ diff-lcs (1.3)
+ diffy (3.3.0)
+ docker-api (1.34.2)
+ excon (>= 0.47.0)
+ multi_json
+ domain_name (0.5.20190701)
+ unf (>= 0.0.5, < 1.0.0)
+ ed25519 (1.2.4)
+ equatable (0.6.1)
+ erubi (1.9.0)
+ erubis (2.7.0)
+ excon (0.72.0)
+ faraday (0.17.3)
+ multipart-post (>= 1.2, < 3)
+ faraday-cookie_jar (0.0.6)
+ faraday (>= 0.7.4)
+ http-cookie (~> 1.0.0)
+ faraday_middleware (0.12.2)
+ faraday (>= 0.7.4, < 1.0)
+ fauxhai-ng (7.6.0)
+ net-ssh
+ ffi (1.12.2)
+ ffi-libarchive (1.0.0)
+ ffi (~> 1.0)
+ ffi-yajl (2.3.3)
+ libyajl2 (~> 1.2)
+ foodcritic (16.2.0)
+ cucumber-core (>= 1.3, < 4.0)
+ erubis
+ ffi-yajl (~> 2.0)
+ nokogiri (>= 1.5, < 2.0)
+ rake
+ rufus-lru (~> 1.0)
+ treetop (~> 1.4)
+ fuzzyurl (0.9.0)
+ gherkin (5.1.0)
+ git (1.6.0)
+ rchardet (~> 1.8)
+ google-api-client (0.34.1)
+ addressable (~> 2.5, >= 2.5.1)
+ googleauth (~> 0.9)
+ httpclient (>= 2.8.1, < 3.0)
+ mini_mime (~> 1.0)
+ representable (~> 3.0)
+ retriable (>= 2.0, < 4.0)
+ signet (~> 0.12)
+ googleauth (0.10.0)
+ faraday (~> 0.12)
+ jwt (>= 1.4, < 3.0)
+ memoist (~> 0.16)
+ multi_json (~> 1.11)
+ os (>= 0.9, < 2.0)
+ signet (~> 0.12)
+ gssapi (1.3.0)
+ ffi (>= 1.0.1)
+ gyoku (1.3.1)
+ builder (>= 2.1.2)
+ hashie (3.6.0)
+ highline (1.7.10)
+ 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)
+ httpclient (2.8.3)
+ i18n (1.8.2)
+ concurrent-ruby (~> 1.0)
+ inifile (3.0.0)
+ iniparse (1.4.4)
+ inspec (4.18.85)
+ faraday_middleware (~> 0.12.2)
+ inspec-core (= 4.18.85)
+ train (~> 3.0)
+ train-aws (~> 0.1)
+ train-habitat (~> 0.1)
+ train-winrm (~> 0.2)
+ inspec-core (4.18.85)
+ addressable (~> 2.4)
+ chef-telemetry (~> 1.0)
+ faraday (>= 0.9.0)
+ hashie (~> 3.4)
+ htmlentities (~> 4.3)
+ json-schema (~> 2.8)
+ license-acceptance (>= 0.2.13, < 2.0)
+ method_source (~> 0.8)
+ mixlib-log (~> 3.0)
+ multipart-post (~> 2.0)
+ parallel (~> 1.9)
+ parslet (~> 1.5)
+ pry (~> 0)
+ rspec (~> 3.9)
+ rspec-its (~> 1.2)
+ rubyzip (~> 1.2, >= 1.2.2)
+ semverse (~> 3.0)
+ sslshake (~> 1.2)
+ term-ansicolor (~> 1.7)
+ thor (>= 0.20, < 2.0)
+ tomlrb (~> 1.2)
+ train-core (~> 3.0)
+ tty-prompt (~> 0.17)
+ tty-table (~> 0.10)
+ ipaddress (0.8.3)
+ jaro_winkler (1.5.4)
+ jmespath (1.4.0)
+ json (2.3.0)
+ json-schema (2.8.1)
+ addressable (>= 2.4)
+ jwt (2.2.1)
+ kitchen-inspec (1.3.1)
+ hashie (~> 3.4)
+ inspec (>= 1.47, < 5.0)
+ test-kitchen (>= 1.6, < 3)
+ kitchen-vagrant (1.6.1)
+ test-kitchen (>= 1.4, < 3)
+ knife-spork (1.7.2)
+ app_conf (>= 0.4.0)
+ chef (>= 11.0.0)
+ diffy (>= 3.0.1)
+ git (>= 1.2.5)
+ libyajl2 (1.2.0)
+ license-acceptance (1.0.13)
+ pastel (~> 0.7)
+ tomlrb (~> 1.2)
+ tty-box (~> 0.3)
+ tty-prompt (~> 0.18)
+ little-plugger (1.1.4)
+ logging (2.2.2)
+ little-plugger (~> 1.1)
+ multi_json (~> 1.10)
+ memoist (0.16.2)
+ method_source (0.9.2)
+ mini_mime (1.0.2)
+ mini_portile2 (2.4.0)
+ minitar (0.9)
+ minitest (5.14.0)
+ mixlib-archive (1.0.5)
+ mixlib-log
+ mixlib-authentication (3.0.6)
+ mixlib-cli (2.1.5)
+ mixlib-config (3.0.6)
+ tomlrb
+ mixlib-install (3.11.26)
+ mixlib-shellout
+ mixlib-versioning
+ thor
+ mixlib-log (3.0.8)
+ mixlib-shellout (3.0.9)
+ mixlib-versioning (1.2.12)
+ molinillo (0.6.6)
+ ms_rest (0.7.5)
+ concurrent-ruby (~> 1.0)
+ faraday (~> 0.9)
+ timeliness (~> 0.3.10)
+ ms_rest_azure (0.11.1)
+ concurrent-ruby (~> 1.0)
+ faraday (~> 0.9)
+ faraday-cookie_jar (~> 0.0.6)
+ ms_rest (~> 0.7.4)
+ unf_ext (= 0.0.7.2)
+ multi_json (1.14.1)
+ multipart-post (2.1.1)
+ necromancer (0.5.1)
+ net-scp (1.2.1)
+ net-ssh (>= 2.6.5)
+ net-sftp (2.1.2)
+ net-ssh (>= 2.6.5)
+ net-ssh (4.2.0)
+ net-ssh-gateway (2.0.0)
+ net-ssh (>= 4.0.0)
+ net-ssh-multi (1.2.1)
+ net-ssh (>= 2.6.5)
+ net-ssh-gateway (>= 1.2.0)
+ nokogiri (1.10.8)
+ mini_portile2 (~> 2.4.0)
+ nori (2.6.0)
+ octokit (4.16.0)
+ faraday (>= 0.9)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ ohai (15.7.4)
+ chef-config (>= 12.8, < 16)
+ ffi (~> 1.9)
+ ffi-yajl (~> 2.2)
+ ipaddress
+ mixlib-cli (>= 1.7.0)
+ mixlib-config (>= 2.0, < 4.0)
+ mixlib-log (>= 2.0.1, < 4.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ plist (~> 3.1)
+ systemu (~> 2.6.4)
+ wmi-lite (~> 1.0)
+ os (1.0.1)
+ paint (1.0.1)
+ parallel (1.19.1)
+ parser (2.7.0.2)
+ ast (~> 2.4.0)
+ parslet (1.8.2)
+ pastel (0.7.3)
+ equatable (~> 0.6)
+ tty-color (~> 0.5)
+ plist (3.5.0)
+ polyglot (0.3.5)
+ proxifier (1.0.3)
+ pry (0.12.2)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+ public_suffix (3.1.1)
+ rack (2.2.2)
+ rainbow (3.0.0)
+ rake (13.0.1)
+ rchardet (1.8.0)
+ representable (3.0.4)
+ declarative (< 0.1.0)
+ declarative-option (< 0.2.0)
+ uber (< 0.2.0)
+ retriable (3.1.2)
+ retryable (3.0.5)
+ rexml (3.2.4)
+ rspec (3.9.0)
+ rspec-core (~> 3.9.0)
+ rspec-expectations (~> 3.9.0)
+ rspec-mocks (~> 3.9.0)
+ rspec-core (3.9.1)
+ rspec-support (~> 3.9.1)
+ rspec-expectations (3.9.0)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.9.0)
+ rspec-its (1.3.0)
+ rspec-core (>= 3.0.0)
+ rspec-expectations (>= 3.0.0)
+ rspec-mocks (3.9.1)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.9.0)
+ rspec-support (3.9.2)
+ rubocop (0.80.0)
+ jaro_winkler (~> 1.5.1)
+ parallel (~> 1.10)
+ parser (>= 2.7.0.1)
+ rainbow (>= 2.2.2, < 4.0)
+ rexml
+ ruby-progressbar (~> 1.7)
+ unicode-display_width (>= 1.4.0, < 1.7)
+ ruby-progressbar (1.10.1)
+ rubyntlm (0.6.2)
+ rubyzip (1.3.0)
+ rufus-lru (1.1.0)
+ sawyer (0.8.2)
+ addressable (>= 2.3.5)
+ faraday (> 0.8, < 2.0)
+ semverse (3.0.0)
+ signet (0.12.0)
+ addressable (~> 2.3)
+ faraday (~> 0.9)
+ jwt (>= 1.5, < 3.0)
+ multi_json (~> 1.10)
+ solve (4.0.3)
+ molinillo (~> 0.6)
+ semverse (>= 1.1, < 4.0)
+ sslshake (1.3.0)
+ strings (0.1.8)
+ strings-ansi (~> 0.1)
+ unicode-display_width (~> 1.5)
+ unicode_utils (~> 1.4)
+ strings-ansi (0.2.0)
+ sync (0.5.0)
+ syslog-logger (1.6.8)
+ systemu (2.6.5)
+ term-ansicolor (1.7.1)
+ tins (~> 1.0)
+ test-kitchen (2.3.4)
+ bcrypt_pbkdf (~> 1.0)
+ ed25519 (~> 1.2)
+ license-acceptance (~> 1.0, >= 1.0.11)
+ mixlib-install (~> 3.6)
+ mixlib-shellout (>= 1.2, < 4.0)
+ net-scp (>= 1.1, < 3.0)
+ net-ssh (>= 2.9, < 6.0)
+ net-ssh-gateway (>= 1.2, < 3.0)
+ thor (~> 0.19)
+ winrm (~> 2.0)
+ winrm-elevated (~> 1.0)
+ winrm-fs (~> 1.1)
+ thor (0.20.3)
+ thread_safe (0.3.6)
+ timeliness (0.3.10)
+ tins (1.24.1)
+ sync
+ tomlrb (1.2.9)
+ train (3.2.22)
+ activesupport (~> 5.2.3)
+ azure_graph_rbac (~> 0.16)
+ azure_mgmt_key_vault (~> 0.17)
+ azure_mgmt_resources (~> 0.15)
+ azure_mgmt_security (~> 0.18)
+ azure_mgmt_storage (~> 0.18)
+ docker-api (~> 1.26)
+ google-api-client (>= 0.23.9, < 0.35.0)
+ googleauth (>= 0.6.6, < 0.11.0)
+ train-core (= 3.2.22)
+ train-winrm (~> 0.2)
+ train-aws (0.1.15)
+ aws-sdk-apigateway (~> 1.0)
+ aws-sdk-apigatewayv2 (~> 1.0)
+ aws-sdk-athena (~> 1.0)
+ aws-sdk-autoscaling (~> 1.22.0)
+ aws-sdk-budgets (~> 1.0)
+ aws-sdk-cloudformation (~> 1.0)
+ aws-sdk-cloudhsm (~> 1.0)
+ aws-sdk-cloudhsmv2 (~> 1.0)
+ aws-sdk-cloudtrail (~> 1.8)
+ aws-sdk-cloudwatch (~> 1.13)
+ aws-sdk-cloudwatchlogs (~> 1.13)
+ aws-sdk-codecommit (~> 1.0)
+ aws-sdk-codedeploy (~> 1.0)
+ aws-sdk-codepipeline (~> 1.0)
+ aws-sdk-configservice (~> 1.21)
+ aws-sdk-core (~> 3.0)
+ aws-sdk-costandusagereportservice (~> 1.6)
+ aws-sdk-dynamodb (~> 1.31)
+ aws-sdk-ec2 (~> 1.70)
+ aws-sdk-ecr (~> 1.18)
+ aws-sdk-ecs (~> 1.30)
+ aws-sdk-eks (~> 1.9)
+ aws-sdk-elasticache (~> 1.0)
+ aws-sdk-elasticbeanstalk (~> 1.0)
+ aws-sdk-elasticloadbalancing (~> 1.8)
+ aws-sdk-elasticloadbalancingv2 (~> 1.0)
+ aws-sdk-elasticsearchservice (~> 1.0)
+ aws-sdk-firehose (~> 1.0)
+ aws-sdk-iam (~> 1.13)
+ aws-sdk-kafka (~> 1.0)
+ aws-sdk-kinesis (~> 1.0)
+ aws-sdk-kms (~> 1.13)
+ aws-sdk-lambda (~> 1.0)
+ aws-sdk-organizations (~> 1.17.0)
+ aws-sdk-rds (~> 1.43)
+ aws-sdk-redshift (~> 1.0)
+ aws-sdk-route53 (~> 1.0)
+ aws-sdk-route53domains (~> 1.0)
+ aws-sdk-route53resolver (~> 1.0)
+ aws-sdk-s3 (~> 1.30)
+ aws-sdk-securityhub (~> 1.0)
+ aws-sdk-ses (~> 1.0)
+ aws-sdk-sms (~> 1.0)
+ aws-sdk-sns (~> 1.9)
+ aws-sdk-sqs (~> 1.10)
+ aws-sdk-ssm (~> 1.0)
+ train-core (3.2.22)
+ addressable (~> 2.5)
+ inifile (~> 3.0)
+ json (>= 1.8, < 3.0)
+ mixlib-shellout (>= 2.0, < 4.0)
+ net-scp (>= 1.2, < 3.0)
+ net-ssh (>= 2.9, < 6.0)
+ train-habitat (0.2.13)
+ train-winrm (0.2.6)
+ winrm (~> 2.0)
+ winrm-fs (~> 1.0)
+ treetop (1.6.10)
+ polyglot (~> 0.3)
+ tty-box (0.5.0)
+ pastel (~> 0.7.2)
+ strings (~> 0.1.6)
+ tty-cursor (~> 0.7)
+ tty-color (0.5.1)
+ tty-cursor (0.7.1)
+ tty-prompt (0.20.0)
+ necromancer (~> 0.5.0)
+ pastel (~> 0.7.0)
+ tty-reader (~> 0.7.0)
+ tty-reader (0.7.0)
+ tty-cursor (~> 0.7)
+ tty-screen (~> 0.7)
+ wisper (~> 2.0.0)
+ tty-screen (0.7.1)
+ tty-table (0.11.0)
+ equatable (~> 0.6)
+ necromancer (~> 0.5)
+ pastel (~> 0.7.2)
+ strings (~> 0.1.5)
+ tty-screen (~> 0.7)
+ tzinfo (1.2.6)
+ thread_safe (~> 0.1)
+ uber (0.1.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.7.2)
+ unicode-display_width (1.6.1)
+ unicode_utils (1.4.0)
+ uuidtools (2.1.5)
+ winrm (2.3.4)
+ builder (>= 2.1.2)
+ erubi (~> 1.8)
+ gssapi (~> 1.2)
+ gyoku (~> 1.0)
+ httpclient (~> 2.2, >= 2.2.0.2)
+ logging (>= 1.6.1, < 3.0)
+ nori (~> 2.0)
+ rubyntlm (~> 0.6.0, >= 0.6.1)
+ winrm-elevated (1.2.1)
+ erubi (~> 1.8)
+ winrm (~> 2.0)
+ winrm-fs (~> 1.0)
+ winrm-fs (1.3.3)
+ erubi (~> 1.8)
+ logging (>= 1.6.1, < 3.0)
+ rubyzip (~> 1.1)
+ winrm (~> 2.0)
+ wisper (2.0.1)
+ wmi-lite (1.0.5)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ berkshelf
+ chef-dk (= 4.7.73)
+ chef-provisioning
+ chef-vault
+ chefspec
+ fauxhai-ng
+ foodcritic
+ inspec
+ kitchen-inspec
+ kitchen-vagrant
+ knife-spork
+ ohai
+ pry
+ rubocop
+ test-kitchen
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/default.nix
new file mode 100644
index 000000000000..1a5f6c8626ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerEnv, bundlerUpdateScript, ruby, perl, autoconf }:
+
+bundlerEnv {
+ name = "chef-dk-4.7.73";
+
+ inherit ruby;
+ gemdir = ./.;
+
+ buildInputs = [ perl autoconf ];
+
+ passthru.updateScript = bundlerUpdateScript "chefdk";
+
+ meta = with lib; {
+ description = "A streamlined development and deployment workflow for Chef platform";
+ homepage = "https://downloads.chef.io/chef-dk/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ offline nicknovitski ];
+ platforms = platforms.unix;
+ badPlatforms = [ "aarch64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/gemset.nix
new file mode 100644
index 000000000000..326dfae79311
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/chefdk/gemset.nix
@@ -0,0 +1,2456 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lmlnx79sv18xv1ddm4vq7z3mwdfa4468mq5186av0k8n1k471sp";
+ type = "gem";
+ };
+ version = "5.2.4.1";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ app_conf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yqwhr7d9i0cgavqkkq0b4pfqpn213dbhj5ayygr293wplm0jh57";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ ast = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.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 = "0bkzzk4mxsxvnd8sr5xx57vc29j69h48gj2g24fzjn7ika6az18z";
+ type = "gem";
+ };
+ version = "1.275.0";
+ };
+ aws-sdk-apigateway = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "106wn66gnn1rk9z4w84iwqb26wbyz3i2q9ck3xxabc47ly9mj03m";
+ type = "gem";
+ };
+ version = "1.36.0";
+ };
+ aws-sdk-apigatewayv2 = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x9qaxi1614pfp9hy5ywk7y76gfmk5d0iz6lj9p9qy92gfzx169c";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ aws-sdk-athena = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hvskqq406vh9xa29jzyjhfpf6m834872p87a2j0ly5kh4ydldkz";
+ type = "gem";
+ };
+ version = "1.22.0";
+ };
+ aws-sdk-autoscaling = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jrz4brxbi8rxqk1jg5wcdsa1knfrgzrmx9dygfzbfi2szcfmbhv";
+ type = "gem";
+ };
+ version = "1.22.0";
+ };
+ aws-sdk-budgets = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xxgldgin1gavz7w37pmsxrhiwr8bvssjgv3lwzbwdsjqk0jd0f3";
+ type = "gem";
+ };
+ version = "1.27.0";
+ };
+ aws-sdk-cloudformation = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bxipaq1g6c5g8zirqlbq74kmy8fglavhyrxyd91sy9yj2d9q26r";
+ type = "gem";
+ };
+ version = "1.30.0";
+ };
+ aws-sdk-cloudhsm = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "096dpm87k0q1kqnvf5v0sb98gdsq41390pxvs014qphqycqjchc6";
+ type = "gem";
+ };
+ version = "1.19.0";
+ };
+ aws-sdk-cloudhsmv2 = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10cyc1brjppnkmynkb3qf7ar78a4dhngg3fmmfxnxlcrigwbrxpa";
+ type = "gem";
+ };
+ version = "1.20.0";
+ };
+ aws-sdk-cloudtrail = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "034psp0g7ab9al7389y64pr2ar2jvxsg6p1djj4w53700xrj602g";
+ type = "gem";
+ };
+ version = "1.20.0";
+ };
+ aws-sdk-cloudwatch = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvjjlcyp1sx0gsgm82h84n32sb51m8ih53ab4qq94m9jcxk49cr";
+ type = "gem";
+ };
+ version = "1.32.0";
+ };
+ aws-sdk-cloudwatchlogs = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bhnlh3skqw3l2yfr6nd97arlcmijpm51k664m51l5xw2971bc51";
+ type = "gem";
+ };
+ version = "1.28.0";
+ };
+ aws-sdk-codecommit = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00mkgfywxqzbbin2qidx4qvb5xcjjl41v6am023bl2yww5x8hi5p";
+ type = "gem";
+ };
+ version = "1.30.0";
+ };
+ aws-sdk-codedeploy = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06m5i5g2j2yylksficbla25cjsdw42y5gbzmx5ycxvxz3c4n3qh1";
+ type = "gem";
+ };
+ version = "1.27.0";
+ };
+ aws-sdk-codepipeline = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09dkyclanvxz77hh933ph2ad4yh7midy09hbprszfikhfkvi4z2m";
+ type = "gem";
+ };
+ version = "1.28.0";
+ };
+ aws-sdk-configservice = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gjw5jv4p9zhdh4cg982x7x3lpfhgi7an14gjwz1llxmmkzv15wr";
+ type = "gem";
+ };
+ version = "1.40.0";
+ };
+ aws-sdk-core = {
+ dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q7f9jkpmpppj31kh3wnzybkphq4piy8ays3vld0zsibfjs9iw7i";
+ type = "gem";
+ };
+ version = "3.90.1";
+ };
+ aws-sdk-costandusagereportservice = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18yzz7av4z8qh321r0ih6m5lc1x4mh10pn67z6y70ny8syxm4kl6";
+ type = "gem";
+ };
+ version = "1.18.0";
+ };
+ aws-sdk-dynamodb = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06nbf297r85ix92x9ilx8ysz67sm59mprscmmdp4rsn74v78dzaj";
+ type = "gem";
+ };
+ version = "1.43.0";
+ };
+ aws-sdk-ec2 = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wnql5rzwkn97w4l3pq6k97grqdci1qs7h132pnd6lc3bx62v4h5";
+ type = "gem";
+ };
+ version = "1.144.0";
+ };
+ aws-sdk-ecr = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1smq30avqjq6h4yvw9h0k2gwp97c4l4868f2vdj93l84i80gh1pi";
+ type = "gem";
+ };
+ version = "1.25.0";
+ };
+ aws-sdk-ecs = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "113kwczkqr4jsyrnnxkm0kpdqs3ysc0913nclb5mdwapd5dbq3br";
+ type = "gem";
+ };
+ version = "1.57.0";
+ };
+ aws-sdk-eks = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1h3bvqizz95lngmpsgysdpnn1fshrppfc6zq3qphv5hagpa1gj5n";
+ type = "gem";
+ };
+ version = "1.31.0";
+ };
+ aws-sdk-elasticache = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0805g31chgr65bc74g8s33vk8id0gmyzvwpxjvf5drsrplbv1kca";
+ type = "gem";
+ };
+ version = "1.29.0";
+ };
+ aws-sdk-elasticbeanstalk = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nxrcfwngmbrvcbxh0cl6mqbvxda82k9kpjr1a0agypazapmy980";
+ type = "gem";
+ };
+ version = "1.26.0";
+ };
+ aws-sdk-elasticloadbalancing = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13mc6mahnnrcgf2ah3p12sm538mfdygz6a6afgwijaar0za126l3";
+ type = "gem";
+ };
+ version = "1.19.0";
+ };
+ aws-sdk-elasticloadbalancingv2 = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17rvv3wlp7bm2f1cfkd8cvwz51kg6pzj8cw6jh4fvlnahx7cilr0";
+ type = "gem";
+ };
+ version = "1.39.0";
+ };
+ aws-sdk-elasticsearchservice = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lzm94grzggz6vrlzbk6226vlyfnxbq0rih71vdnj1h63f8gj73m";
+ type = "gem";
+ };
+ version = "1.30.0";
+ };
+ aws-sdk-firehose = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xpx6r6z2gfybfsndi7n6wr6zv6gqzfz9fm39wj8ljhsmbf2p2ch";
+ type = "gem";
+ };
+ version = "1.24.0";
+ };
+ aws-sdk-iam = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s78ssjcp974v7r1znrgk78bqz23jhws4gy1nm659z5390zsn1fz";
+ type = "gem";
+ };
+ version = "1.33.0";
+ };
+ aws-sdk-kafka = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k6pixxh9vfq2bhm89h1jpdzpikh600xmp1m1zqh9k8qa62g0glm";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ aws-sdk-kinesis = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mx60qi7sgr8a2k8h1c0ify2l3dvp509hflmbwq87jgq6npz89jr";
+ type = "gem";
+ };
+ version = "1.20.0";
+ };
+ aws-sdk-kms = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "191qnrpg9qhwj24pisha28fwqx30sqkj75ibgpqcf4q389l3a2gw";
+ type = "gem";
+ };
+ version = "1.29.0";
+ };
+ aws-sdk-lambda = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16llkc8dl88m2f58kpn81lnw37zlh0ghlb1g5bzli5hm8ygn1z5s";
+ type = "gem";
+ };
+ version = "1.36.0";
+ };
+ aws-sdk-organizations = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0z71zxsvz1g3i6mnpvb05gzk2lay4dzrl45lby8n7acpp4wb2j1g";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ aws-sdk-rds = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09ld8vrhrhywc4imvbj238pic7qi2mg1n3421s0iwd1xhf5fvakp";
+ type = "gem";
+ };
+ version = "1.78.0";
+ };
+ aws-sdk-redshift = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w8y5vlzzws2fqpjjq59gmgrf1l5whm1zcm7fhlkikxspq9iw16b";
+ type = "gem";
+ };
+ version = "1.37.0";
+ };
+ aws-sdk-route53 = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "132c11g43zbmn2wzrnys7viymcdsznzl26igpv6ixv4jvi62r7fq";
+ type = "gem";
+ };
+ version = "1.30.0";
+ };
+ aws-sdk-route53domains = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01flbzipphp2qm4lcrxbmwqlgl7jy5w7gyj6hbgb8aich927w5qx";
+ type = "gem";
+ };
+ version = "1.18.0";
+ };
+ aws-sdk-route53resolver = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hlyd4h49sa3s61l1w362l2qmnm78kfj2ks6mshrjwr8l8zql1q5";
+ type = "gem";
+ };
+ version = "1.11.0";
+ };
+ aws-sdk-s3 = {
+ dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pblkq7rw465w08hs2xy6v7w10x9n004hk43yqzswqxirki68ldz";
+ type = "gem";
+ };
+ version = "1.60.2";
+ };
+ aws-sdk-securityhub = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a88i8bkqjy91ydj95h9v9mmlsqnx62hkinsprrx6ym0ix78kzim";
+ type = "gem";
+ };
+ version = "1.18.0";
+ };
+ aws-sdk-ses = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "046bsyj6zblcbffj15qbdz5fp8ipr6vfhrycsv6hznciy6jvpq4h";
+ type = "gem";
+ };
+ version = "1.27.0";
+ };
+ aws-sdk-sms = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x1x1hrs8v4vb5l79dp5qpdi0znb5cxviwk1zcx6zajpzabv7hdl";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ aws-sdk-sns = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vfyn7hc21qgarhrfghyw3qi550656834b51n5vnginraryk6ji8";
+ type = "gem";
+ };
+ version = "1.21.0";
+ };
+ aws-sdk-sqs = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c81w75ph7c3g8fkq8xxs1f5zkvv5yv0k3xy6441gjxvwkpiaih6";
+ type = "gem";
+ };
+ version = "1.23.1";
+ };
+ aws-sdk-ssm = {
+ dependencies = ["aws-sdk-core" "aws-sigv4"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "116vbhw7l2hk1vk3dq79czp857bcw7giw00ip4par1cgwkxym03c";
+ type = "gem";
+ };
+ version = "1.71.0";
+ };
+ aws-sigv4 = {
+ dependencies = ["aws-eventstream"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ azure_graph_rbac = {
+ dependencies = ["ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fq9gnsihrrljmlsg70kmryf72rxyy8kb4v9fa9z28abj0lncqgk";
+ type = "gem";
+ };
+ version = "0.17.1";
+ };
+ azure_mgmt_key_vault = {
+ dependencies = ["ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18vcdhzndwa81lg877b1mg2804vhvvnw83qagx6v99adicjf8y8b";
+ type = "gem";
+ };
+ version = "0.17.5";
+ };
+ azure_mgmt_resources = {
+ dependencies = ["ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "036p2d59jdjx5a49jz4swf37kfpc9ryyrb13xrdyghk1q79qli8p";
+ type = "gem";
+ };
+ version = "0.17.8";
+ };
+ azure_mgmt_security = {
+ dependencies = ["ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01rk0wbfbhrxnm0vv520ilxd55hv7n3w0sq5j0v17mnwjgm7pa6d";
+ type = "gem";
+ };
+ version = "0.18.0";
+ };
+ azure_mgmt_storage = {
+ dependencies = ["ms_rest_azure"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m1xajw39958kcv4qlhad2n19flijn9aqzxks2wx4b0k207vp87c";
+ type = "gem";
+ };
+ version = "0.19.2";
+ };
+ backports = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sp3l5wa77klj34sqib95ppxyam53x3p57xk0y6gy2c3z29z6hs5";
+ type = "gem";
+ };
+ version = "3.16.1";
+ };
+ bcrypt_pbkdf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ berkshelf = {
+ dependencies = ["chef" "chef-config" "cleanroom" "concurrent-ruby" "minitar" "mixlib-archive" "mixlib-config" "mixlib-shellout" "octokit" "retryable" "solve" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb20i2blbj9w4cf9nxxxskbd7q5zk8rrirppsfjx8r02dywpq8f";
+ type = "gem";
+ };
+ version = "7.0.9";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ chef = {
+ dependencies = ["addressable" "bcrypt_pbkdf" "chef-config" "chef-utils" "chef-zero" "diff-lcs" "ed25519" "erubis" "ffi" "ffi-libarchive" "ffi-yajl" "highline" "iniparse" "license-acceptance" "mixlib-archive" "mixlib-authentication" "mixlib-cli" "mixlib-log" "mixlib-shellout" "net-sftp" "net-ssh" "net-ssh-multi" "ohai" "plist" "proxifier" "syslog-logger" "train-core" "train-winrm" "tty-screen" "uuidtools"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lfx43yl77x074vjg77ixfxnxwl103ywjya55m4lj4vj0b2nxxxn";
+ type = "gem";
+ };
+ version = "15.8.23";
+ };
+ chef-cli = {
+ dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "05178w55vwqgrv8jaic2f77h6hx5b40lsmlaqfvdq63a459wl5sd";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ chef-config = {
+ dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xbl4pgn4kavi6b1m1f232xx4l9fhlz7d4ndmb11m36wb8l05hsk";
+ type = "gem";
+ };
+ version = "15.8.23";
+ };
+ chef-dk = {
+ dependencies = ["addressable" "chef" "cookbook-omnifetch" "diff-lcs" "ffi-yajl" "license-acceptance" "minitar" "mixlib-cli" "mixlib-shellout" "paint" "solve"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zhfq3kwchay6aj6128pr13xabrfprs288ma9abnv9d6vz3ddpw6";
+ type = "gem";
+ };
+ version = "4.7.73";
+ };
+ chef-provisioning = {
+ dependencies = ["cheffish" "inifile" "mixlib-install" "net-scp" "net-ssh" "net-ssh-gateway" "winrm" "winrm-elevated" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16l3hahc5b57bi61kssdzqywh8ydkbmj0mgdj4lvj0v68hnjc6f1";
+ type = "gem";
+ };
+ version = "2.7.6";
+ };
+ chef-telemetry = {
+ dependencies = ["chef-config" "concurrent-ruby" "ffi-yajl" "http"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lx85wy6d1khrya0idwqkdvh1x57qak3d8y699gwccfhl88xymg3";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ chef-utils = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "149pgbybdpi9y11qfsm4bmnqm655s682yv7qkwxhzwqn2fylzb2j";
+ type = "gem";
+ };
+ version = "15.8.23";
+ };
+ chef-vault = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0k0famr2cbrrarp4rpzcymqnpnwg734psbf0pxhasxdsjjg8nl6f";
+ type = "gem";
+ };
+ version = "4.0.1";
+ };
+ chef-zero = {
+ dependencies = ["ffi-yajl" "hashie" "mixlib-log" "rack" "uuidtools"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pjvg3djnzkwkjj5pmgk9dc14q5bdd7na8js1d4gr8x6b6z58my3";
+ type = "gem";
+ };
+ version = "14.0.17";
+ };
+ cheffish = {
+ dependencies = ["chef-zero" "net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0axv7mkx0s4nqa85ns1xg70s9sq3h6fg86nda13b6q9k7gbifkvl";
+ type = "gem";
+ };
+ version = "14.0.13";
+ };
+ chefspec = {
+ dependencies = ["chef" "chef-cli" "fauxhai-ng" "rspec"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ry6707plcrj7aicadmzxzfmlvz43i2g55k2iph8m390wpxhnhcl";
+ type = "gem";
+ };
+ version = "9.1.0";
+ };
+ cleanroom = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r6qa4b248jasv34vh7rw91pm61gzf8g5dvwx2gxrshjs7vbhfml";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ coderay = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ cookbook-omnifetch = {
+ dependencies = ["mixlib-archive"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w4xh4ffcm4jd3fys9yg3rb8asngll15mvra8lfi2328alvbanvb";
+ type = "gem";
+ };
+ version = "0.9.1";
+ };
+ cucumber-core = {
+ dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ cucumber-tag_expressions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ declarative = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0642xvwzzbgi3kp1bg467wma4g3xqrrn0sk369hjam7w579gnv5j";
+ type = "gem";
+ };
+ version = "0.0.10";
+ };
+ declarative-option = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g4ibxq566f1frnhdymzi9hxxcm4g2gw4n21mpjk2mhwym4q6l0p";
+ type = "gem";
+ };
+ version = "0.1.0";
+ };
+ diff-lcs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ diffy = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
+ type = "gem";
+ };
+ version = "3.3.0";
+ };
+ docker-api = {
+ dependencies = ["excon" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04dkbg7x2m4102dnwil2v688gblxh1skh374nkzksn18jjrivkdp";
+ type = "gem";
+ };
+ version = "1.34.2";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+ type = "gem";
+ };
+ version = "0.5.20190701";
+ };
+ ed25519 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+ type = "gem";
+ };
+ version = "1.2.4";
+ };
+ equatable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fzx2ishipnp6c124ka6fiw5wk42s7c7gxid2c4c1mb55b30dglf";
+ type = "gem";
+ };
+ version = "0.6.1";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ erubis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vhc5c16i8zrm3d98ppsnw514d7jvwdg0wk60kc9i1xw3797qkkd";
+ type = "gem";
+ };
+ version = "0.72.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13aghksmni2sl15y7wfpx6k5l3lfd8j9gdyqi6cbw6jgc7bqyyn2";
+ type = "gem";
+ };
+ version = "0.17.3";
+ };
+ faraday-cookie_jar = {
+ dependencies = ["faraday" "http-cookie"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1di4gx6446a6zdkrpj679m5k515i53wvb4yxcsqvy8d8zacxiiv6";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p7icfl28nvl8qqdsngryz1snqic9l8x6bk0dxd7ygn230y0k41d";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ fauxhai-ng = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vm9hz6k8v4i7r1s5z489n58liaaxmb8bgcvklfg1hf8k3d5afdp";
+ type = "gem";
+ };
+ version = "7.6.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+ type = "gem";
+ };
+ version = "1.12.2";
+ };
+ ffi-libarchive = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vs8s37lr3bgw5d3mb6vamcqy16dj61yzzq0xf453lhr3dcampkb";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ ffi-yajl = {
+ dependencies = ["libyajl2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11m9pkx2a1vssplzb3fwx4kc25bg5xmjf0j97l5kv6mhnhd93sik";
+ type = "gem";
+ };
+ version = "2.3.3";
+ };
+ foodcritic = {
+ dependencies = ["cucumber-core" "erubis" "ffi-yajl" "nokogiri" "rake" "rufus-lru" "treetop"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11dzfcf6p1z75anizwqm48nadd84j5wk0vm4mp4s5a7xfqjh3psi";
+ type = "gem";
+ };
+ version = "16.2.0";
+ };
+ fuzzyurl = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03qchs33vfwbsv5awxg3acfmlcrf5xbhnbrc83fdpamwya0glbjl";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ gherkin = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ git = {
+ dependencies = ["rchardet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15sbv16dlap5d6naybl8cc99zffrpzygkhjz3m6l3r5y5yrhwwjc";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+ google-api-client = {
+ dependencies = ["addressable" "googleauth" "httpclient" "mini_mime" "representable" "retriable" "signet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xndfscxxaw73qah484vmhcd60hlbyrr9rlh7sf2n2sjfcqikjsf";
+ type = "gem";
+ };
+ version = "0.34.1";
+ };
+ googleauth = {
+ dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dnkh017ln5g7x3y0w743g61bxb2cdcyr1vax9ic3gx7vkrfj3iw";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ gssapi = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ gyoku = {
+ dependencies = ["builder"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ hashie = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ highline = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+ type = "gem";
+ };
+ version = "1.7.10";
+ };
+ 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";
+ };
+ httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+ type = "gem";
+ };
+ version = "1.8.2";
+ };
+ inifile = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c5zmk7ia63yw5l2k14qhfdydxwi1sah1ppjdiicr4zcalvfn0xi";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ iniparse = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xbik6838gfh5yq9ahh1m7dzszxlk0g7x5lvhb8amk60mafkrgws";
+ type = "gem";
+ };
+ version = "1.4.4";
+ };
+ inspec = {
+ dependencies = ["faraday_middleware" "inspec-core" "train" "train-aws" "train-habitat" "train-winrm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04cyv81rgspr9xachq2dk9xgb740jrq7vpy2r88lqdzlzbpz3f4n";
+ type = "gem";
+ };
+ version = "4.18.85";
+ };
+ inspec-core = {
+ dependencies = ["addressable" "chef-telemetry" "faraday" "hashie" "htmlentities" "json-schema" "license-acceptance" "method_source" "mixlib-log" "multipart-post" "parallel" "parslet" "pry" "rspec" "rspec-its" "rubyzip" "semverse" "sslshake" "term-ansicolor" "thor" "tomlrb" "train-core" "tty-prompt" "tty-table"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ha6dmi5lywv4gldpv2pyj0zwqv4wsf422jd4x8licmkpkcrwc2r";
+ type = "gem";
+ };
+ version = "4.18.85";
+ };
+ ipaddress = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1x86s0s11w202j6ka40jbmywkrx8fhq8xiy8mwvnkhllj57hqr45";
+ type = "gem";
+ };
+ version = "0.8.3";
+ };
+ jaro_winkler = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ jmespath = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ json-schema = {
+ dependencies = ["addressable"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
+ type = "gem";
+ };
+ version = "2.8.1";
+ };
+ jwt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01zg1vp3lyl3flyjdkrcc93ghf833qgfgh2p1biqfhkzz11r129c";
+ type = "gem";
+ };
+ version = "2.2.1";
+ };
+ kitchen-inspec = {
+ dependencies = ["hashie" "inspec" "test-kitchen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1v85hnmhqdbl9zxphvbqfgma9rl095mq9jz223mkffdh9q5xv282";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ kitchen-vagrant = {
+ dependencies = ["test-kitchen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01wwryb4ha6gzhnmbg7xir32rpynbw4zc2l9dch02pwizw0n669x";
+ type = "gem";
+ };
+ version = "1.6.1";
+ };
+ knife-spork = {
+ dependencies = ["app_conf" "chef" "diffy" "git"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rcry9fbsi9kqfi8rrdda17yzmfyg21g9jv01sgzg1sj59kzb79s";
+ type = "gem";
+ };
+ version = "1.7.2";
+ };
+ libyajl2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ license-acceptance = {
+ dependencies = ["pastel" "tomlrb" "tty-box" "tty-prompt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lxgpmzb9hafzx7f5fssb1mamcbzbdp87awvjr33fk6nsvyg3zaj";
+ type = "gem";
+ };
+ version = "1.0.13";
+ };
+ little-plugger = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ logging = {
+ dependencies = ["little-plugger" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ memoist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
+ type = "gem";
+ };
+ version = "0.16.2";
+ };
+ method_source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ mini_mime = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+ type = "gem";
+ };
+ version = "1.0.2";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ minitar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "126mq86x67d1p63acrfka4zx0cx2r0vc93884jggxnrmmnzbxh13";
+ type = "gem";
+ };
+ version = "0.9";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+ type = "gem";
+ };
+ version = "5.14.0";
+ };
+ mixlib-archive = {
+ dependencies = ["mixlib-log"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01c7g55x126cj2493wx03n9b83i9m1rdfx2aivg1yg8d1lmj8jdg";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ mixlib-authentication = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d854b55d0hx0q12gwbycfdcpnxx88zz0jk557ngq2cqq94g96jy";
+ type = "gem";
+ };
+ version = "3.0.6";
+ };
+ mixlib-cli = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yrfgg18hlm0hkg81w5bw3fbk0m89lg96a0b65q9mrrscg37rvn2";
+ type = "gem";
+ };
+ version = "2.1.5";
+ };
+ mixlib-config = {
+ dependencies = ["tomlrb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14lb9dg4wg86qhbd0rykdjr00arkyvmrg20a5ylf0zd6wp7w01jk";
+ type = "gem";
+ };
+ version = "3.0.6";
+ };
+ mixlib-install = {
+ dependencies = ["mixlib-shellout" "mixlib-versioning" "thor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bsn4d0m3xw142v1vssyrxwa6y64fqd5hx2hsnm5vc1xj4xmcg0f";
+ type = "gem";
+ };
+ version = "3.11.26";
+ };
+ mixlib-log = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00kmwx7s3xpxmy44saxjk36gbhsywyxy4f8jf4gjvwwpr0ps8q0g";
+ type = "gem";
+ };
+ version = "3.0.8";
+ };
+ mixlib-shellout = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0c2nqa82xp0hg8sj69cypar8n7p3azl5pl2v2mjbkhgmmhqxa8km";
+ type = "gem";
+ };
+ version = "3.0.9";
+ };
+ mixlib-versioning = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cqyrcgw2xwxmjhwa31ipmphkg5aa6x4fd5c5j9y7hifw32pb1vr";
+ type = "gem";
+ };
+ version = "1.2.12";
+ };
+ molinillo = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
+ type = "gem";
+ };
+ version = "0.6.6";
+ };
+ ms_rest = {
+ dependencies = ["concurrent-ruby" "faraday" "timeliness"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10mgfspn3g75mhmfprpr2pnkmav34gix8cfga43g7162d0i1pd9l";
+ type = "gem";
+ };
+ version = "0.7.5";
+ };
+ ms_rest_azure = {
+ dependencies = ["concurrent-ruby" "faraday" "faraday-cookie_jar" "ms_rest" "unf_ext"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "135va1hzxwn0apb2lf7b9yi8d1czid250cgf91dm331rqz84jnvz";
+ type = "gem";
+ };
+ version = "0.11.1";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+ type = "gem";
+ };
+ version = "1.14.1";
+ };
+ multipart-post = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ necromancer = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w2y31947axs62bsf0xrpgalsw4ip1m44vpw7p8f4s9zvnayj2vd";
+ type = "gem";
+ };
+ version = "0.5.1";
+ };
+ net-scp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ net-sftp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
+ type = "gem";
+ };
+ version = "2.1.2";
+ };
+ net-ssh = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07c4v97zl1daabmri9zlbzs6yvkl56z1q14bw74d53jdj0c17nhx";
+ type = "gem";
+ };
+ version = "4.2.0";
+ };
+ net-ssh-gateway = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l3v761y32aw0n8lm0c0m42lr4ay8cq6q4sc5yc68b9fwlfvb70x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ net-ssh-multi = {
+ dependencies = ["net-ssh" "net-ssh-gateway"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13kxz9b6kgr9mcds44zpavbndxyi6pvyzyda6bhk1kfmb5c10m71";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yi8j8hwrlc3rg5v3w52gxndmwifyk7m732q9yfbal0qajqbh1h8";
+ type = "gem";
+ };
+ version = "1.10.8";
+ };
+ nori = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ octokit = {
+ dependencies = ["faraday" "sawyer"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06kx258qa5k24q5pv8i4daaw3g57gif6p5k5h3gndj3q2jk6vhkn";
+ type = "gem";
+ };
+ version = "4.16.0";
+ };
+ ohai = {
+ dependencies = ["chef-config" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "systemu" "wmi-lite"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1c6c22nqg905sivr099qrwbvnwwyvm37xzxxrysvkalxglkvxr23";
+ type = "gem";
+ };
+ version = "15.7.4";
+ };
+ os = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "06r55k01g32lvz4wf2s6hpjlxbbag113jsvff3w64jllfr315a73";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ paint = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z1fqyyc2jiv6yabv467h652cxr2lmxl5gqqg7p14y28kdqf0nhj";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ parallel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+ type = "gem";
+ };
+ version = "1.19.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "145lv6rbbnbddbk79l10kadycjq05vyrzq5d733zswmypshpq6ni";
+ type = "gem";
+ };
+ version = "2.7.0.2";
+ };
+ parslet = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12nrzfwjphjlakb9pmpj70hgjwgzvnr8i1zfzddifgyd44vspl88";
+ type = "gem";
+ };
+ version = "1.8.2";
+ };
+ pastel = {
+ dependencies = ["equatable" "tty-color"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m43wk7gswwkl6lfxwlliqc9v1qp8arfygihyz91jc9icf270xzm";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ plist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ra0910xxbhfsmdi0ig36pr3q0khdqzwb5da3wg7y3n8d1sh9ffp";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+ polyglot = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+ type = "gem";
+ };
+ version = "0.3.5";
+ };
+ proxifier = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1abzlg39cfji1nx3i8kmb5k3anr2rd392yg2icms24wkqz9g9zj0";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g9ds2ffzljl6jjmkjffwxc1z6lh5nkqqmhhkxjk71q5ggv0rkpm";
+ type = "gem";
+ };
+ version = "3.1.1";
+ };
+ rack = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+ type = "gem";
+ };
+ version = "2.2.2";
+ };
+ rainbow = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+ type = "gem";
+ };
+ version = "13.0.1";
+ };
+ rchardet = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+ type = "gem";
+ };
+ version = "1.8.0";
+ };
+ representable = {
+ dependencies = ["declarative" "declarative-option" "uber"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qm9rgi1j5a6nv726ka4mmixivlxfsg91h8rpp72wwd4vqbkkm07";
+ type = "gem";
+ };
+ version = "3.0.4";
+ };
+ retriable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1q48hqws2dy1vws9schc0kmina40gy7sn5qsndpsfqdslh65snha";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ retryable = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pymcs9fqcnz6n6h033yfp0agg6y2s258crzig05kkxs6rldvwy9";
+ type = "gem";
+ };
+ version = "3.0.5";
+ };
+ rexml = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ rspec = {
+ dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ rspec-core = {
+ dependencies = ["rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qzc1wdjb1qnbimjl8i1q1r1z5hdv2lmcw7ysz7jawj4d1cvpqvd";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ rspec-expectations = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gjqfb39da6gywdcp4h77738r7khbrn2v4y45589z25bj4z9paf0";
+ type = "gem";
+ };
+ version = "3.9.0";
+ };
+ rspec-its = {
+ dependencies = ["rspec-core" "rspec-expectations"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15zafd70gxly5i0s00nky14sj2n92dnj3xpj83ysl3c2wx0119ad";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ rspec-mocks = {
+ dependencies = ["diff-lcs" "rspec-support"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+ type = "gem";
+ };
+ version = "3.9.1";
+ };
+ rspec-support = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zwpyq1na23pvgacpxs2v9nwfbjbw6x3arca5j3l1xagigqmzhc3";
+ type = "gem";
+ };
+ version = "3.9.2";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "rexml" "ruby-progressbar" "unicode-display_width"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0adfpv76whv5dy5wr5brqkki39jfv6r08482saj64h9j4wzwcznb";
+ type = "gem";
+ };
+ version = "0.80.0";
+ };
+ ruby-progressbar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ rubyntlm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ rubyzip = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ rufus-lru = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sp7ymz054md75fnn2hx5d2axmhrh0abbn8c2p759j4g4lxn11ip";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+ type = "gem";
+ };
+ version = "0.8.2";
+ };
+ semverse = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1qs9jk2kkbpy4gfrh90g3wsbi7i5n4di21haii3pn2bn6dyq5p18";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ signet = {
+ dependencies = ["addressable" "faraday" "jwt" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m8brljfgrxpr5j7kggv3dphqj9in3rkbf5dryx8f7nprkk85wdd";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ solve = {
+ dependencies = ["molinillo" "semverse"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zymaik4cxd4kmd8f4n1ij8ykrfinhnlvlhjnsdv2cv1xnqnjqmk";
+ type = "gem";
+ };
+ version = "4.0.3";
+ };
+ sslshake = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dy7pnvn0zb3qbfahgksfxqw1hxhk2i2wlw34bvr2iyzqlw04a3s";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ strings = {
+ dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
+ type = "gem";
+ };
+ version = "0.1.8";
+ };
+ strings-ansi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
+ type = "gem";
+ };
+ version = "0.2.0";
+ };
+ sync = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ syslog-logger = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14y20phq1khdla4z9wvf98k7j3x6n0rjgs4f7vb0xlf7h53g6hbm";
+ type = "gem";
+ };
+ version = "1.6.8";
+ };
+ systemu = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gmkbakhfci5wnmbfx5i54f25j9zsvbw858yg3jjhfs5n4ad1xq1";
+ type = "gem";
+ };
+ version = "2.6.5";
+ };
+ term-ansicolor = {
+ dependencies = ["tins"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj";
+ type = "gem";
+ };
+ version = "1.7.1";
+ };
+ test-kitchen = {
+ dependencies = ["bcrypt_pbkdf" "ed25519" "license-acceptance" "mixlib-install" "mixlib-shellout" "net-scp" "net-ssh" "net-ssh-gateway" "thor" "winrm" "winrm-elevated" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14wvv8vgm3lqqk9ifywjhhxlvnbx5gpl4f8zbw5gj41sq8hdqgqj";
+ type = "gem";
+ };
+ version = "2.3.4";
+ };
+ 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";
+ };
+ timeliness = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gvp9b7yn4pykn794cibylc9ys1lw7fzv7djx1433icxw4y26my3";
+ type = "gem";
+ };
+ version = "0.3.10";
+ };
+ tins = {
+ dependencies = ["sync"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nghqcdg7ak91n2h6igx8i2ykbhna93xpg33w6232451vphlwdm0";
+ type = "gem";
+ };
+ version = "1.24.1";
+ };
+ tomlrb = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0njkyq5csj4km8spmw33b5902v254wvyvqq1b0f0kky5hs7bvrgg";
+ type = "gem";
+ };
+ version = "1.2.9";
+ };
+ train = {
+ dependencies = ["activesupport" "azure_graph_rbac" "azure_mgmt_key_vault" "azure_mgmt_resources" "azure_mgmt_security" "azure_mgmt_storage" "docker-api" "google-api-client" "googleauth" "train-core" "train-winrm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y7aggjyarc531a0vmh86vdqr6ws3y3h64jnkh8cavpqns4jhmjg";
+ type = "gem";
+ };
+ version = "3.2.22";
+ };
+ train-aws = {
+ dependencies = ["aws-sdk-apigateway" "aws-sdk-apigatewayv2" "aws-sdk-athena" "aws-sdk-autoscaling" "aws-sdk-budgets" "aws-sdk-cloudformation" "aws-sdk-cloudhsm" "aws-sdk-cloudhsmv2" "aws-sdk-cloudtrail" "aws-sdk-cloudwatch" "aws-sdk-cloudwatchlogs" "aws-sdk-codecommit" "aws-sdk-codedeploy" "aws-sdk-codepipeline" "aws-sdk-configservice" "aws-sdk-core" "aws-sdk-costandusagereportservice" "aws-sdk-dynamodb" "aws-sdk-ec2" "aws-sdk-ecr" "aws-sdk-ecs" "aws-sdk-eks" "aws-sdk-elasticache" "aws-sdk-elasticbeanstalk" "aws-sdk-elasticloadbalancing" "aws-sdk-elasticloadbalancingv2" "aws-sdk-elasticsearchservice" "aws-sdk-firehose" "aws-sdk-iam" "aws-sdk-kafka" "aws-sdk-kinesis" "aws-sdk-kms" "aws-sdk-lambda" "aws-sdk-organizations" "aws-sdk-rds" "aws-sdk-redshift" "aws-sdk-route53" "aws-sdk-route53domains" "aws-sdk-route53resolver" "aws-sdk-s3" "aws-sdk-securityhub" "aws-sdk-ses" "aws-sdk-sms" "aws-sdk-sns" "aws-sdk-sqs" "aws-sdk-ssm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dvwzk9h5kzbb9v6qm387mfysjz4nfcr56685ccl5c1jj5a59553";
+ type = "gem";
+ };
+ version = "0.1.15";
+ };
+ train-core = {
+ dependencies = ["addressable" "inifile" "json" "mixlib-shellout" "net-scp" "net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1dfqyfi4q2vykbiw4b373n7n2aqzhq9gkn8sr3sx2w7hpd7lkd3x";
+ type = "gem";
+ };
+ version = "3.2.22";
+ };
+ train-habitat = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w642zkvgq0d1dy622lk50ngr0872v6ghd4r1g692qv8g4k6d90n";
+ type = "gem";
+ };
+ version = "0.2.13";
+ };
+ train-winrm = {
+ dependencies = ["winrm" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x4sv6hblq9y259aka6j868di2w669f6aj2m7ssi5jxhanaf5mqk";
+ type = "gem";
+ };
+ version = "0.2.6";
+ };
+ treetop = {
+ dependencies = ["polyglot"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
+ type = "gem";
+ };
+ version = "1.6.10";
+ };
+ tty-box = {
+ dependencies = ["pastel" "strings" "tty-cursor"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14g63v0jx87hba50rlv3c521zg9rw0f5d31cihcvym19xxa7v3l5";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ tty-color = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0czbnp19cfnf5zwdd22payhqjv57mgi3gj5n726s20vyq3br6bsp";
+ type = "gem";
+ };
+ version = "0.5.1";
+ };
+ tty-cursor = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j5zw041jgkmn605ya1zc151bxgxl6v192v2i26qhxx7ws2l2lvr";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ tty-prompt = {
+ dependencies = ["necromancer" "pastel" "tty-reader"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19kbxny8cfsy1r02awih1gf76mi3a7zqg3ymxpmf9720khlmziax";
+ type = "gem";
+ };
+ version = "0.20.0";
+ };
+ tty-reader = {
+ dependencies = ["tty-cursor" "tty-screen" "wisper"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1977ajs9sxwhd88qqmf6l1hw63dqxlvg9mx626rymsc5ap2xa1r4";
+ type = "gem";
+ };
+ version = "0.7.0";
+ };
+ tty-screen = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jwgr2i3wilng3mx851xczmkzllbirmsmr42ik4amqyyvry1yzyf";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ tty-table = {
+ dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y07yikpk65jqmxinw8l4c45pbw1b2h4fv9fikb43a7sdlr6sn69";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04f18jdv6z3zn3va50rqq35nj3izjpb72fnf21ixm7vanq6nc4fp";
+ type = "gem";
+ };
+ version = "1.2.6";
+ };
+ uber = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p1mm7mngg40x05z52md3mbamkng0zpajbzqjjwmsyw0zw3v9vjv";
+ type = "gem";
+ };
+ version = "0.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 = "04d13bp6lyg695x94whjwsmzc2ms72d94vx861nx1y40k3817yp8";
+ type = "gem";
+ };
+ version = "0.0.7.2";
+ };
+ unicode-display_width = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+ type = "gem";
+ };
+ version = "1.6.1";
+ };
+ unicode_utils = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ uuidtools = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zjvq1jrrnzj69ylmz1xcr30skf9ymmvjmdwbvscncd7zkr8av5g";
+ type = "gem";
+ };
+ version = "2.1.5";
+ };
+ winrm = {
+ dependencies = ["builder" "erubi" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13c0vf32vinkp3ia86rvq779dacl37v4v2814v4g9qrk3liv0dym";
+ type = "gem";
+ };
+ version = "2.3.4";
+ };
+ winrm-elevated = {
+ dependencies = ["erubi" "winrm" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yawwrs3pnvbbm9xn0nbzvyl92kgf1jr439qfbqx0mb8zzkyi2dv";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ winrm-fs = {
+ dependencies = ["erubi" "logging" "rubyzip" "winrm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0phhzliw47hmpi3ddygs500kfxa7il5yzmp7dw4ix2dvhrxrj7s6";
+ type = "gem";
+ };
+ version = "1.3.3";
+ };
+ wisper = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rpsi0ziy78cj82sbyyywby4d0aw0a5q84v65qd28vqn79fbq5yf";
+ type = "gem";
+ };
+ version = "2.0.1";
+ };
+ wmi-lite = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "110dv4arvwyky6f2pq19f20f1xcjpiz3zfbals0y49ijpq8agvql";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/chit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/chit/default.nix
new file mode 100644
index 000000000000..564c5dcbcb53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/chit/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl
+, darwin
+}:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "chit";
+ version = "0.1.15";
+
+ src = fetchFromGitHub {
+ owner = "peterheesterman";
+ repo = pname;
+ rev = version;
+ sha256 = "0iixczy3cad44j2d7zzj8f3lnmp4jwnb0snmwfgiq3vj9wrn28pz";
+ };
+
+ cargoSha256 = "1w25k3bqmmcrhpkw510vbwph0rfmrzi2wby0z2rz1q4k1f9k486m";
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig ];
+ buildInputs = []
+ ++ stdenv.lib.optionals stdenv.isLinux [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ CoreFoundation CoreServices Security ])
+ ;
+
+ meta = with stdenv.lib; {
+ description = "Crate help in terminal: A tool for looking up details about rust crates without going to crates.io";
+ longDescription = ''
+ Chit helps answer these questions:
+
+ * Who wrote this crate? What else did they write?
+ * What alternatives are there?
+ * How old is this crate?
+ * What versions are there? When did they come out?
+ * What are the downloads over time?
+ * Should i use this crate?
+ * How mature is it?
+ '';
+ homepage = "https://github.com/peterheesterman/chit";
+ license = licenses.mit;
+ maintainers = [ maintainers.lilyball ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix
new file mode 100644
index 000000000000..2e8f48901aba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, llvmPackages }:
+
+let
+ clang = llvmPackages.clang-unwrapped;
+
+in stdenv.mkDerivation {
+ pname = "clang-tools";
+ version = stdenv.lib.getVersion clang;
+
+ dontUnpack = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ export libc_includes="${stdenv.lib.getDev stdenv.cc.libc}/include"
+ export libcpp_includes="${llvmPackages.libcxx}/include/c++/v1"
+
+ export clang=${clang}
+ substituteAll ${./wrapper} $out/bin/clangd
+ chmod +x $out/bin/clangd
+ for tool in \
+ clang-apply-replacements \
+ clang-check \
+ clang-format \
+ clang-rename \
+ clang-tidy
+ do
+ ln -s $out/bin/clangd $out/bin/$tool
+ done
+
+ runHook postInstall
+ '';
+
+ meta = clang.meta // {
+ description = "Standalone command line tools for C++ development";
+ maintainers = with stdenv.lib.maintainers; [ aherrmann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper
new file mode 100644
index 000000000000..53c99a67f2d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clang-tools/wrapper
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+buildcpath() {
+ local path
+ while (( $# )); do
+ case $1 in
+ -isystem)
+ shift
+ path=$path${path:+':'}$1
+ esac
+ shift
+ done
+ echo $path
+}
+
+export CPATH=${CPATH}${CPATH:+':'}$(buildcpath ${NIX_CFLAGS_COMPILE})
+export CPATH=${CPATH}${CPATH:+':'}@libc_includes@
+export CPLUS_INCLUDE_PATH=${CPATH}${CPATH:+':'}@libcpp_includes@
+
+exec -a "$0" @clang@/bin/$(basename $0) "$@"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clj-kondo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
new file mode 100644
index 000000000000..f64041d1be84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clj-kondo/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, graalvm8, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "clj-kondo";
+ version = "2020.04.05";
+
+ reflectionJson = fetchurl {
+ name = "reflection.json";
+ url = "https://raw.githubusercontent.com/borkdude/${pname}/v${version}/reflection.json";
+ sha256 = "1m6kja38p6aypawbynkyq8bdh8wpdjmyqrhslinqid9r8cl25rcq";
+ };
+
+ src = fetchurl {
+ url = "https://github.com/borkdude/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
+ sha256 = "0k9samcqkpkdgzbzr2bpixf75987lsabh97101v1fg12qvjhf187";
+ };
+
+ dontUnpack = true;
+
+ buildInputs = [ graalvm8 ];
+
+ buildPhase = ''
+ native-image \
+ -jar ${src} \
+ -H:Name=clj-kondo \
+ -H:+ReportExceptionStackTraces \
+ -J-Dclojure.spec.skip-macros=true \
+ -J-Dclojure.compiler.direct-linking=true \
+ "-H:IncludeResources=clj_kondo/impl/cache/built_in/.*" \
+ -H:ReflectionConfigurationFiles=${reflectionJson} \
+ --initialize-at-build-time \
+ -H:Log=registerResource: \
+ --verbose \
+ --no-fallback \
+ --no-server \
+ "-J-Xmx3g"
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp clj-kondo $out/bin/clj-kondo
+ '';
+
+ meta = with lib; {
+ description = "A linter for Clojure code that sparks joy";
+ homepage = "https://github.com/borkdude/clj-kondo";
+ license = licenses.epl10;
+ platforms = graalvm8.meta.platforms;
+ maintainers = with maintainers; [ jlesquembre bandresen ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/clog-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/clog-cli/default.nix
new file mode 100644
index 000000000000..6d843ead24e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/clog-cli/default.nix
@@ -0,0 +1,25 @@
+{ fetchFromGitHub, rustPlatform, stdenv }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "clog-cli";
+ version = "0.9.3";
+
+ src = fetchFromGitHub {
+ owner = "clog-tool";
+ repo = "clog-cli";
+ rev = "v${version}";
+ sha256 = "1wxglc4n1dar5qphhj5pab7ps34cjr7jy611fwn72lz0f6c7jp3z";
+ };
+
+ cargoSha256 = "1s7g9mcjyp0pjjxma1mb290fi7fk54qy2khh1zksxhr4d3mciv08";
+
+ meta = {
+ description = "Generate changelogs from local git metadata";
+ homepage = "https://github.com/clog-tool/clog-cli";
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [stdenv.lib.maintainers.nthorne];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
new file mode 100644
index 000000000000..6e070f3cc5f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "cloud-nuke";
+ version = "0.1.18";
+
+ src = fetchFromGitHub {
+ owner = "gruntwork-io";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1amk9bjrc9svvgllif2vr6xx7kc3xmwjbyb8prnm5zp82hymk5f1";
+ };
+
+ goPackagePath = "github.com/gruntwork-io/cloud-nuke";
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ homepage = "https://github.com/gruntwork-io/cloud-nuke";
+ description = "A tool for cleaning up your cloud accounts by nuking (deleting) all resources within it";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/deps.nix
new file mode 100644
index 000000000000..c354bd985fd3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cloud-nuke/deps.nix
@@ -0,0 +1,219 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/aws/aws-sdk-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/aws/aws-sdk-go";
+ rev = "1f4898f67806740d2a91c9dfe9a8be8a61523eb4";
+ sha256 = "1znjv4irzqxwizdp3dxgb5w9x06xjs79a3s68afzrblz97kf94kc";
+ };
+ }
+ {
+ goPackagePath = "github.com/bgentry/speakeasy";
+ fetch = {
+ type = "git";
+ url = "https://github.com/bgentry/speakeasy";
+ rev = "4aabc24848ce5fd31929f7d1e4ea74d3709c14cd";
+ sha256 = "02dfrj0wyphd3db9zn2mixqxwiz1ivnyc5xc7gkz58l5l27nzp8s";
+ };
+ }
+ {
+ goPackagePath = "github.com/boombuler/barcode";
+ fetch = {
+ type = "git";
+ url = "https://github.com/boombuler/barcode";
+ rev = "3cfea5ab600ae37946be2b763b8ec2c1cf2d272d";
+ sha256 = "1fzb8wz1ny2sc78g9rm0bcm80pgwvkm2k6lmim2sb4jgm1j3sajd";
+ };
+ }
+ {
+ goPackagePath = "github.com/davecgh/go-spew";
+ fetch = {
+ type = "git";
+ url = "https://github.com/davecgh/go-spew";
+ rev = "346938d642f2ec3594ed81d874461961cd0faa76";
+ sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "570b54cabe6b8eb0bc2dfce68d964677d63b5260";
+ sha256 = "1hw9hgkfzbzqjhy29pqpk20xggxaqjv45wx8yn69488mw5ph7khh";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-errors/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-errors/errors";
+ rev = "d98b870cc4e05f1545532a80e9909be8216095b6";
+ sha256 = "1skj4vh9h7c5lk1pw8y6740w2k99z398jl0aasn63x83viqjf1zw";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-sql-driver/mysql";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-sql-driver/mysql";
+ rev = "72cd26f257d44c1114970e19afddcd812016007e";
+ sha256 = "1fvsvwc1v2i0gqn01mynvi1shp5xm0xaym6xng09fcbqb56lbjx1";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/mock";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/mock";
+ rev = "b48cb6623c04dae64c28537143aca42d16561daf";
+ sha256 = "1zb4n285mv85dh3y2f8fqbs30h2dhzw7vbczr6z0zg2gqr6vzg0q";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/uuid";
+ rev = "064e2069ce9c359c118179501254f67d7d37ba24";
+ sha256 = "1b1ibx3rbiv7xwa9kz4b4zpp1fza5cjnn8v6749b4vrkjjmp3rqb";
+ };
+ }
+ {
+ goPackagePath = "github.com/gruntwork-io/gruntwork-cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gruntwork-io/gruntwork-cli";
+ rev = "94044eeeb0a48b5e8dd52190fa0d0daba53e157f";
+ sha256 = "1x6g2s4f66c4pb8dwvjnj4i70ik43ak2x189v2ys218nz4zkjs74";
+ };
+ }
+ {
+ goPackagePath = "github.com/gruntwork-io/terratest";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gruntwork-io/terratest";
+ rev = "bd5fdfc1564ec40a149a6e579d6ca20ebf2eaca4";
+ sha256 = "1vbipykcwhmzs2qxfxdnq3gdi3i5ds6pykjjxqw3f1llad2dihby";
+ };
+ }
+ {
+ goPackagePath = "github.com/jmespath/go-jmespath";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jmespath/go-jmespath";
+ rev = "c2b33e84";
+ sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+ sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+ sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "792786c7400a136282c1664665ae0a8db921c6c2";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/pquerna/otp";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pquerna/otp";
+ rev = "43bebefda392017900e7a7b237b4c914c6a55b50";
+ sha256 = "088njs8i7b0syyz20hzd3lcjxy61chc518d71lvykw2g9c9wsc7l";
+ };
+ }
+ {
+ goPackagePath = "github.com/sirupsen/logrus";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sirupsen/logrus";
+ rev = "d682213848ed68c0a260ca37d6dd5ace8423f5ba";
+ sha256 = "0nzyqwzx3k7nqfq8q7yv32gaf3ymq3bpwhkmw1hj2zakq5a93d8x";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "3ebf1ddaeb260c4b1ae502a01c7844fa8c1fa0e9";
+ sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
+ };
+ }
+ {
+ goPackagePath = "github.com/urfave/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/urfave/cli";
+ rev = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1";
+ sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "13931e22f9e72ea58bb73048bc752b48c6d4d4ac";
+ sha256 = "1621j82c1hiw4pxjdvaf5qyirwv5c0bqwlrhhna9pnjsgr5pkw33";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "ca1201d0de80cfde86cb01aea620983605dfe99b";
+ sha256 = "16j9xyby1vfl4ch6wqzafxxxnxvcp8vhzknpchwabci1f2zcsn6i";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "2c42eef0765b9837fbdab12011af7830f55f88f0";
+ sha256 = "0gj9nwryyzf9rn33gl3zm6rxvg1zhrhwi36akipqj37x4g86h3gz";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "b2f4a3cf3c67576a2ee09e1fe62656a5086ce880";
+ sha256 = "0zxlvwzxwkwz4bs4h9zc9979dx76y4xf9ks4d22bclg47dv59yry";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-yaml/yaml";
+ rev = "53403b58ad1b561927d19068c655246f2db79d48";
+ sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix
new file mode 100644
index 000000000000..642c42108aa5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "cloudfoundry-cli";
+ version = "7.0.1";
+
+ goPackagePath = "code.cloudfoundry.org/cli";
+
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "cloudfoundry";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "0jh4x7xlijp1naak5qyc256zkzlrczl6g4iz94s8wx2zj7np0q5l";
+ };
+
+ # upstream have helpfully moved the bash completion script to a separate
+ # repo which receives no releases or even tags
+ bashCompletionScript = fetchurl {
+ url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/6087781a0e195465a35c79c8e968ae708c6f6351/ci/installers/completion/cf7";
+ sha256 = "1vhg9jcgaxcvvb4pqnhkf27b3qivs4d3w232j0gbh9393m3qxrvy";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ makeTarget = let hps = stdenv.hostPlatform.system; in
+ if hps == "x86_64-darwin" then
+ "out/cf-cli_osx"
+ else if hps == "x86_64-linux" then
+ "out/cf-cli_linux_x86-64"
+ else if hps == "i686-linux" then
+ "out/cf-cli_linux_i686"
+ else
+ throw "make target for this platform unknown";
+
+ buildPhase = ''
+ cd go/src/${goPackagePath}
+ CF_BUILD_DATE="1970-01-01" make $makeTarget
+ cp $makeTarget out/cf
+ '';
+
+ installPhase = ''
+ install -Dm555 out/cf "$out/bin/cf"
+ installShellCompletion --bash $bashCompletionScript
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The official command line client for Cloud Foundry";
+ homepage = "https://github.com/cloudfoundry/cli";
+ maintainers = with maintainers; [ ris ];
+ license = licenses.asl20;
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-format/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-format/default.nix
new file mode 100644
index 000000000000..0d9edebe19b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-format/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, autopep8
+, flake8
+, jinja2
+, pylint
+, pyyaml
+}:
+
+buildPythonApplication rec {
+ pname = "cmake-format";
+ version = "0.6.13";
+ # The source distribution does not build because of missing files.
+ format = "wheel";
+
+ src = fetchPypi {
+ inherit version format;
+ python = "py3";
+ pname = "cmakelang";
+ sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
+ };
+
+ propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ];
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Source code formatter for cmake listfiles";
+ homepage = "https://github.com/cheshirekow/cmake_format";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.tobim ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
new file mode 100644
index 000000000000..628bb31fbe93
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, buildPythonApplication, fetchFromGitHub
+, poetry, pygls, pyparsing
+, cmake, pytest, pytest-datadir
+, fetchpatch
+}:
+
+buildPythonApplication rec {
+ pname = "cmake-language-server";
+ version = "0.1.2";
+ format = "pyproject";
+
+ src = fetchFromGitHub {
+ owner = "regen100";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vz7bjxkk0phjhz3h9kj6yr7wnk3g7lqmkqraa0kw12mzcfck837";
+ };
+
+ # can be removed after v0.1.2
+ patches = stdenv.lib.optional stdenv.isDarwin (fetchpatch {
+ url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
+ sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
+ });
+
+ postPatch = ''
+ substituteInPlace pyproject.toml \
+ --replace 'pygls = "^0.8.1"' 'pygls = "^0.9.0"'
+ '';
+
+ nativeBuildInputs = [ poetry ];
+ propagatedBuildInputs = [ pygls pyparsing ];
+
+ checkInputs = [ cmake pytest pytest-datadir ];
+ dontUseCmakeConfigure = true;
+ checkPhase = "pytest";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/regen100/cmake-language-server";
+ description = "CMake LSP Implementation";
+ license = licenses.mit;
+ maintainers = with maintainers; [ metadark ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile
new file mode 100644
index 000000000000..66a29975e7dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org" do
+ gem 'compass'
+end
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile.lock
new file mode 100644
index 000000000000..ecae8fdd7f62
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/Gemfile.lock
@@ -0,0 +1,31 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ chunky_png (1.3.11)
+ compass (1.0.3)
+ chunky_png (~> 1.2)
+ compass-core (~> 1.0.2)
+ compass-import-once (~> 1.0.5)
+ rb-fsevent (>= 0.9.3)
+ rb-inotify (>= 0.9)
+ sass (>= 3.3.13, < 3.5)
+ compass-core (1.0.3)
+ multi_json (~> 1.0)
+ sass (>= 3.3.0, < 3.5)
+ compass-import-once (1.0.5)
+ sass (>= 3.2, < 3.5)
+ ffi (1.10.0)
+ multi_json (1.13.1)
+ rb-fsevent (0.10.3)
+ rb-inotify (0.10.0)
+ ffi (~> 1.0)
+ sass (3.4.25)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ compass!
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compass/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/default.nix
new file mode 100644
index 000000000000..f8a2aad14f45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "compass";
+ gemdir = ./.;
+ exes = [ "compass" ];
+
+ passthru.updateScript = bundlerUpdateScript "compass";
+
+ meta = with lib; {
+ description = "Stylesheet Authoring Environment that makes your website design simpler to implement and easier to maintain";
+ homepage = "https://github.com/Compass/compass";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ offline manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compass/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/gemset.nix
new file mode 100644
index 000000000000..1beb3d3fec00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compass/gemset.nix
@@ -0,0 +1,96 @@
+{
+ chunky_png = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "124najs9prqzrzk49h53kap992rmqxj0wni61z2hhsn7mwmgdp9d";
+ type = "gem";
+ };
+ version = "1.3.11";
+ };
+ compass = {
+ dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lfi83w8z75czr0pf0rmj9hda22082h3cmvczl8r1ma9agf88y2c";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-core = {
+ dependencies = ["multi_json" "sass"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yaspqwdmzwdcqviclbs3blq7an16pysrfzylz8q1gxmmd6bpj3a";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ compass-import-once = {
+ dependencies = ["sass"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bn7gwbfz7jvvdd0qdfqlx67fcb83gyvxqc7dr9fhcnks3z8z5rq";
+ type = "gem";
+ };
+ version = "1.0.5";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ rb-fsevent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ sass = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kfpcwh8dgw4lc81qglkvjl73689jy3g7196zkxm4fpskg1p5lkw";
+ type = "gem";
+ };
+ version = "3.4.25";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/default.nix
new file mode 100644
index 000000000000..24aca0dada7b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "compile-daemon-unstable";
+ version = "2017-03-08";
+ rev = "d447e567232bcb84cedd3b2be012c7127f31f469";
+
+ goPackagePath = "github.com/githubnemo/CompileDaemon";
+
+ src = fetchFromGitHub {
+ owner = "githubnemo";
+ repo = "CompileDaemon";
+ inherit rev;
+ sha256 = "0jfbipp3gd89n6d7gds1qvfkqvz80qdlqqhijxffh8z8ss0xinqc";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Very simple compile daemon for Go";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ ];
+ inherit (src.meta) homepage;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/deps.nix
new file mode 100644
index 000000000000..53771ddad9f0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/compile-daemon/deps.nix
@@ -0,0 +1,48 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.0-devel
+[
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "9131ab34cf20d2f6d83fdc67168a5430d1c7dc23";
+ sha256 = "111x6rhpxfjhwkjrmrirqqh6nc68q5g7air9fl5kgr3bg85hybr5";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "a392f450ea64cee2b268dfaacdc2502b50a22b18";
+ sha256 = "1msiq5nb1sdhwfjv65hjnvr2s4pfsp8mv6f5z8aa8n9bjf0cksyc";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "57fdcb988a5c543893cc61bce354a6e24ab70022";
+ sha256 = "1fkhmi3nhz6vasfvjzjjwxkbpwsb9hzc0g5h1rygqrnzjykl2r39";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "99f16d856c9836c42d24e7ab64ea72916925fa97";
+ sha256 = "0g2x5krfhnraq03v0b48y3xv3ffg92pbgvps0npj9l7wq8q9hkmx";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "629574ca2a5df945712d3079857300b5e4da0236";
+ sha256 = "06wfg1mmzjj04z7d0q1x2fai9k6hm957brngsaf02fa9a3qqanv3";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/conftest/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/conftest/default.nix
new file mode 100644
index 000000000000..ee048466a3d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/conftest/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "conftest";
+ version = "0.21.0";
+
+ src = fetchFromGitHub {
+ owner = "open-policy-agent";
+ repo = "conftest";
+ rev = "v${version}";
+ sha256 = "15xdsjv53hjgmdxzdakj07ggickw1jkcii31ycb3q8nh1ki05rhq";
+ };
+
+ vendorSha256 = "0795npr09680nmxiz9riq5v6rp91qgkvw1lc2mn9gzakv1ywl5rq";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X main.version=${version}
+ '';
+
+ meta = with lib; {
+ description = "Write tests against structured configuration data";
+ inherit (src.meta) homepage;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ yurrriq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix
new file mode 100644
index 000000000000..b5200e22cad8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix
@@ -0,0 +1,35 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+with lib;
+
+buildGoPackage rec {
+ pname = "ct";
+ version = "0.9.0";
+
+ goPackagePath = "github.com/coreos/container-linux-config-transpiler";
+
+ src = fetchFromGitHub {
+ owner = "coreos";
+ repo = "container-linux-config-transpiler";
+ rev = "v${version}";
+ sha256="1w6nvgrl5qp3ci9igflk9dlk3020psv5m4f3p57f3qcx9vrcl4lw";
+ };
+
+ buildFlagsArray = ''
+ -ldflags=-X ${goPackagePath}/internal/version.Raw=v${version}
+ '';
+
+ postInstall = ''
+ mv $out/bin/{internal,ct}
+ rm $out/bin/tools
+ '';
+
+ meta = {
+ description = "Convert a Container Linux Config into Ignition";
+ license = licenses.asl20;
+ homepage = "https://github.com/coreos/container-linux-config-transpiler";
+ maintainers = with maintainers; [elijahcaine];
+ platforms = with platforms; unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
new file mode 100644
index 000000000000..ceaa704b565c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix
@@ -0,0 +1,48 @@
+{ fetchFromGitHub, stdenv, buildGoPackage,
+ makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }:
+buildGoPackage rec {
+ name = "buildkite-agent-${version}";
+ version = "3.17.0";
+
+ goPackagePath = "github.com/buildkite/agent";
+
+ src = fetchFromGitHub {
+ owner = "buildkite";
+ repo = "agent";
+ rev = "v${version}";
+ sha256 = "0a7x919kxnpdn0pnhc5ilx1z6ninx8zgjvsd0jcg4qwh0qqp5ppr";
+ };
+ postPatch = ''
+ substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash
+ '';
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ # on Linux, the TMPDIR is /build which is the same prefix as this package
+ # remove once #35068 is merged
+ noAuditTmpdir = stdenv.isLinux;
+
+ postInstall = ''
+ # Fix binary name
+ mv $out/bin/{agent,buildkite-agent}
+
+ # These are runtime dependencies
+ wrapProgram $out/bin/buildkite-agent \
+ --prefix PATH : '${stdenv.lib.makeBinPath [ openssh git coreutils gnused gnugrep ]}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Build runner for buildkite.com";
+ longDescription = ''
+ The buildkite-agent is a small, reliable, and cross-platform build runner
+ that makes it easy to run automated builds on your own infrastructure.
+ It’s main responsibilities are polling buildkite.com for work, running
+ build jobs, reporting back the status code and output log of the job,
+ and uploading the job's artifacts.
+ '';
+ homepage = "https://buildkite.com/docs/agent";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pawelpacana zimbatm rvl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix
new file mode 100644
index 000000000000..391782014561
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-agent/generic.nix
@@ -0,0 +1,46 @@
+{ stdenv, buildGoPackage, makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep
+, src, version, hasBootstrapScript, postPatch ? ""
+, ... }:
+let
+ goPackagePath = "github.com/buildkite/agent";
+in
+buildGoPackage {
+ pname = "buildkite-agent";
+ inherit version;
+
+ inherit goPackagePath src postPatch;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ ${stdenv.lib.optionalString hasBootstrapScript ''
+ # Install bootstrap.sh
+ mkdir -p $out/libexec/buildkite-agent
+ cp $NIX_BUILD_TOP/go/src/${goPackagePath}/templates/bootstrap.sh $out/libexec/buildkite-agent
+ sed -e "s|#!/bin/bash|#!${bash}/bin/bash|g" -i $out/libexec/buildkite-agent/bootstrap.sh
+ ''}
+
+ # Fix binary name
+ mv $out/bin/{agent,buildkite-agent}
+
+ # These are runtime dependencies
+ wrapProgram $out/bin/buildkite-agent \
+ ${stdenv.lib.optionalString hasBootstrapScript "--set BUILDKITE_BOOTSTRAP_SCRIPT_PATH $out/libexec/buildkite-agent/bootstrap.sh"} \
+ --prefix PATH : '${stdenv.lib.makeBinPath [ openssh git coreutils gnused gnugrep ]}'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Build runner for buildkite.com";
+ longDescription = ''
+ The buildkite-agent is a small, reliable, and cross-platform build runner
+ that makes it easy to run automated builds on your own infrastructure.
+ It’s main responsibilities are polling buildkite.com for work, running
+ build jobs, reporting back the status code and output log of the job,
+ and uploading the job's artifacts.
+ '';
+ homepage = "https://buildkite.com/docs/agent";
+ license = licenses.mit;
+ maintainers = with maintainers; [ pawelpacana zimbatm rvl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
new file mode 100644
index 000000000000..aee2a4e23416
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "buildkite-cli";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "buildkite";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "05hz59qzadkk4ji5icv5sxih31pnn0abnmiwcyfa2mr3l5jaqjnd";
+ };
+
+ vendorSha256 = "0jxh3yhh0sdvaykhinxngpipk369hw8z1y3g2z4c1115m5rjp2bb";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/bk" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
+
+ meta = with lib; {
+ description = "A command line interface for Buildkite";
+ homepage = "https://github.com/buildkite/cli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ groodt ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
new file mode 100644
index 000000000000..66fb878aa26e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+let version = "1.2.2";
+in buildGoModule rec {
+ inherit version;
+ pname = "drone-cli";
+ revision = "v${version}";
+
+ vendorSha256 = "1ryh94cj37j8x6qwxr5ydyw6cnjppakg1w84sipm11d0vvv98bhi";
+
+ doCheck = false;
+
+ preBuild = ''
+ buildFlagsArray+=("-ldflags" "-X main.version=${version}")
+ '';
+
+ src = fetchFromGitHub {
+ owner = "drone";
+ repo = "drone-cli";
+ rev = revision;
+ sha256 = "082yqm72y8s3v06gkcg947p62sd63y3r2bmdsrfgdrzb5w5a75bl";
+ };
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [ bricewge ];
+ license = licenses.asl20;
+ description = "Command line client for the Drone continuous integration server";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
new file mode 100644
index 000000000000..307dda4f993b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ name = "drone.io-${version}";
+ version = "1.9.0";
+
+ vendorSha256 = "0idf11sr417lxcjryplgb87affr6lgzxazzlyvk0y40hp8zbhwsx";
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "drone";
+ repo = "drone";
+ rev = "v${version}";
+ sha256 = "1lsyd245fr1f74rpccvvw41h5g75b79afrb8g589bj13ggjav0xy";
+ };
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [ elohmeier vdemeester ];
+ license = licenses.asl20;
+ description = "Continuous Integration platform built on container technology";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
new file mode 100644
index 000000000000..c85f5473de88
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -0,0 +1,37 @@
+{ buildGoModule, fetchFromGitHub, stdenv, lib, writeText }:
+
+buildGoModule rec {
+ pname = "fly";
+ version = "6.5.1";
+
+ src = fetchFromGitHub {
+ owner = "concourse";
+ repo = "concourse";
+ rev = "v${version}";
+ sha256 = "0ldw40xn9nb5picly32nq558x0klvkyrr9af0jfngbvm4l5209bc";
+ };
+
+ vendorSha256 = "1fxbxkg7disndlmb065abnfn7sn79qclkcbizmrq49f064w1ijr4";
+
+ doCheck = false;
+
+ subPackages = [ "fly" ];
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X github.com/concourse/concourse.Version=${version}
+ '';
+
+ postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+ mkdir -p $out/share/{bash-completion/completions,zsh/site-functions}
+ $out/bin/fly completion --shell bash > $out/share/bash-completion/completions/fly
+ $out/bin/fly completion --shell zsh > $out/share/zsh/site-functions/_fly
+ '';
+
+ meta = with lib; {
+ description = "A command line interface to Concourse CI";
+ homepage = "https://concourse-ci.org";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ivanbrennan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
new file mode 100644
index 000000000000..b59a45617288
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
+
+let
+ version = "13.4.1";
+ # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
+ docker_x86_64 = fetchurl {
+ url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
+ sha256 = "0yc4yfqhh51p0nz0sl2qfp48n431qgp23wn3aqq3jg4fh9578prb";
+ };
+
+ docker_arm = fetchurl {
+ url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
+ sha256 = "1n50izz21dmd14qm6y9fsgwf5f0r9829dv79mvlqxmh1q87acm93";
+ };
+in
+buildGoPackage rec {
+ inherit version;
+ pname = "gitlab-runner";
+ goPackagePath = "gitlab.com/gitlab-org/gitlab-runner";
+ subPackages = [ "." ];
+ commonPackagePath = "${goPackagePath}/common";
+ buildFlagsArray = ''
+ -ldflags=
+ -X ${commonPackagePath}.NAME=gitlab-runner
+ -X ${commonPackagePath}.VERSION=${version}
+ -X ${commonPackagePath}.REVISION=v${version}
+ '';
+
+ src = fetchFromGitLab {
+ owner = "gitlab-org";
+ repo = "gitlab-runner";
+ rev = "v${version}";
+ sha256 = "10k3xn3fapwx52s3r3pk972k1s7793cgja7g1fvm06pic8l7q05g";
+ };
+
+ patches = [ ./fix-shell-path.patch ];
+
+ postInstall = ''
+ install -d $out/bin/helper-images
+ ln -sf ${docker_x86_64} $out/bin/helper-images/prebuilt-x86_64.tar.xz
+ ln -sf ${docker_arm} $out/bin/helper-images/prebuilt-arm.tar.xz
+ '';
+
+ meta = with lib; {
+ description = "GitLab Runner the continuous integration executor of GitLab";
+ license = licenses.mit;
+ homepage = "https://about.gitlab.com/gitlab-ci/";
+ platforms = platforms.unix ++ platforms.darwin;
+ maintainers = with maintainers; [ bachp zimbatm globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch
new file mode 100644
index 000000000000..8aa419ea5f94
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch
@@ -0,0 +1,28 @@
+diff --git a/shells/bash.go b/shells/bash.go
+index 673f4765..a58cc5e2 100644
+--- a/shells/bash.go
++++ b/shells/bash.go
+@@ -5,6 +5,7 @@ import (
+ "bytes"
+ "fmt"
+ "io"
++ "os/exec"
+ "path"
+ "runtime"
+ "strconv"
+@@ -225,7 +226,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo
+ if info.User != "" {
+ script.Command = "su"
+ if runtime.GOOS == "linux" {
+- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell)
++ shellPath, err := exec.LookPath(b.Shell)
++ if err != nil {
++ shellPath = "/bin/"+b.Shell
++ }
++ script.Arguments = append(script.Arguments, "-s", shellPath)
+ }
+ script.Arguments = append(script.Arguments, info.User)
+ script.Arguments = append(script.Arguments, "-c", shellCommand)
+--
+2.18.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
new file mode 100644
index 000000000000..7cefd896f481
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-agent/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+ name = "gocd-agent-${version}-${rev}";
+ version = "19.3.0";
+ rev = "8959";
+
+ src = fetchurl {
+ url = "https://download.go.cd/binaries/${version}-${rev}/generic/go-agent-${version}-${rev}.zip";
+ sha256 = "1nirdv82i8x4s1dyb0rmxldh8avappd4g3mbbl6xp7r7s0drcprp";
+ };
+ meta = with stdenv.lib; {
+ description = "A continuous delivery server specializing in advanced workflow modeling and visualization";
+ homepage = "http://www.go.cd";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ grahamc swarren83 ];
+ };
+
+ buildInputs = [ unzip ];
+
+ buildCommand = "
+ unzip $src -d $out
+ mv $out/go-agent-${version} $out/go-agent
+ ";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix
new file mode 100644
index 000000000000..d23bc9d8d8e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/gocd-server/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+ name = "gocd-server-${version}-${rev}";
+ version = "19.3.0";
+ rev = "8959";
+
+ src = fetchurl {
+ url = "https://download.go.cd/binaries/${version}-${rev}/generic/go-server-${version}-${rev}.zip";
+ sha256 = "0c30qzd6awlw0zx91rk6na0mmgykqkgrw9ychx18ivjwma0hr0sc";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A continuous delivery server specializing in advanced workflow modeling and visualization";
+ homepage = "http://www.go.cd";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ grahamc swarren83 ];
+ };
+
+ buildInputs = [ unzip ];
+
+ buildCommand = "
+ unzip $src -d $out
+ mv $out/go-server-${version} $out/go-server
+ mkdir -p $out/go-server/conf
+ ";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
new file mode 100644
index 000000000000..c8316f4bb571
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -0,0 +1,21 @@
+{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper }:
+let
+ inherit (haskell.lib) overrideCabal addBuildDepends;
+ inherit (lib) makeBinPath;
+ pkg =
+ # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
+ overrideCabal
+ (addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-agent) [ makeWrapper ])
+ (o: {
+ postInstall = ''
+ ${o.postInstall or ""}
+ mkdir -p $out/libexec
+ mv $out/bin/hercules-ci-agent $out/libexec
+ makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath [ gnutar gzip git ]}
+ '';
+ });
+in pkg // {
+ meta = pkg.meta // {
+ position = toString ./default.nix + ":1";
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
new file mode 100644
index 000000000000..d9eb540c3f2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "jenkins";
+ version = "2.249.2";
+
+ src = fetchurl {
+ url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
+ sha256 = "08m5z4ik96gnhw92hjzch7rpvrs0dipi9fps4rihwwzg5k26rc0v";
+ };
+
+ buildCommand = ''
+ mkdir -p "$out/webapps"
+ cp "$src" "$out/webapps/jenkins.war"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An extendable open source continuous integration server";
+ homepage = "https://jenkins-ci.org";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ coconnor fpletz earldouglas ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/update.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/update.sh
new file mode 100755
index 000000000000..4f2f6527eccc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/update.sh
@@ -0,0 +1,22 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl common-updater-scripts jq
+
+set -eu -o pipefail
+
+core_json="$(curl -s --fail --location https://updates.jenkins.io/stable/update-center.actual.json | jq .core)"
+oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion jenkins" | tr -d '"')
+
+version="$(jq -r .version <<<$core_json)"
+sha256="$(jq -r .sha256 <<<$core_json)"
+hash="$(nix-hash --type sha256 --to-base32 "$sha256")"
+url="$(jq -r .url <<<$core_json)"
+
+if [ ! "${oldVersion}" = "${version}" ]; then
+ update-source-version jenkins "$version" "$hash" "$url"
+ nixpkgs="$(git rev-parse --show-toplevel)"
+ default_nix="$nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix"
+ git add "${default_nix}"
+ git commit -m "jenkins: ${oldVersion} -> ${version}"
+else
+ echo "jenkins is already up-to-date"
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
new file mode 100644
index 000000000000..5a326e94a544
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, fetchurl
+, cmake
+, capnproto
+, sqlite
+, boost
+, zlib
+, rapidjson
+, pandoc
+, enableSystemd ? false
+, customConfig ? null
+}:
+let
+ js.vue = fetchurl {
+ url = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js";
+ sha256 = "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq";
+ };
+ js.vue-router = fetchurl {
+ url =
+ "https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js";
+ sha256 = "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as";
+ };
+ js.ansi_up = fetchurl {
+ url = "https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js";
+ sha256 = "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r";
+ };
+ js.Chart = fetchurl {
+ url = "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js";
+ sha256 = "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9";
+ };
+ css.bootstrap = fetchurl {
+ url =
+ "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css";
+ sha256 = "11vx860prsx7wsy8b0yrrk04ih8kvrxkk8l16snsc4n286bdkyri";
+ };
+in stdenv.mkDerivation rec {
+ name = "laminar";
+ version = "0.8";
+ src = fetchurl {
+ url = "https://github.com/ohwgiles/laminar/archive/${version}.tar.gz";
+ sha256 = "05g73j3vpib47kr7mackcazf7s6bc3xwz4h6k7sp7yb5ng7gj20g";
+ };
+ patches = [ ./patches/no-network.patch ];
+ nativeBuildInputs = [ cmake pandoc ];
+ buildInputs = [ capnproto sqlite boost zlib rapidjson ];
+ preBuild = ''
+ mkdir -p js css
+ cp ${js.vue} js/vue.min.js
+ cp ${js.vue-router} js/vue-router.min.js
+ cp ${js.ansi_up} js/ansi_up.js
+ cp ${js.Chart} js/Chart.min.js
+ cp ${css.bootstrap} css/bootstrap.min.css
+ '';
+ postInstall = ''
+ mv $out/usr/share $out
+ mkdir $out/bin
+ mv $out/usr/{bin,sbin}/* $out/bin
+ rmdir $out/usr/{bin,sbin}
+ rmdir $out/usr
+
+ mkdir -p $out/share/doc/laminar
+ pandoc -s ../UserManual.md -o $out/share/doc/laminar/UserManual.html
+ '' + lib.optionalString (customConfig != null) ''
+ cp ${customConfig} /etc/etc/laminar.conf
+ '' + (if enableSystemd then ''
+ sed -i "s,/etc/,$out/etc/," $out/lib/systemd/system/laminar.service
+ sed -i "s,/usr/sbin/,$out/bin/," $out/lib/systemd/system/laminar.service
+ '' else ''
+ rm -r $out/lib # it contains only systemd unit file
+ '');
+
+ meta = with stdenv.lib; {
+ description = "Lightweight and modular continuous integration service";
+ homepage = "https://laminar.ohwg.net";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kaction ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
new file mode 100644
index 000000000000..80e74de95aa2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
@@ -0,0 +1,26 @@
+Build system that downloads stuff from network is bad. Build system that
+does so unconditionally is twice as bad.
+
+Required files are downloaded as separate fixed-output derivations and
+put into correct location before build phase starts.
+
+--- laminar-0.8/CMakeLists.txt
++++ laminar-0.8-new/CMakeLists.txt
+@@ -69,17 +69,6 @@
+ COMMAND sh -c '( echo -n "\\#define INDEX_HTML_UNCOMPRESSED_SIZE " && wc -c < "${CMAKE_SOURCE_DIR}/src/resources/index.html" ) > index_html_size.h'
+ DEPENDS src/resources/index.html)
+
+-# Download 3rd-party frontend JS libs...
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js
+- js/vue.min.js EXPECTED_MD5 ae2fca1cfa0e31377819b1b0ffef704c)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js
+- js/vue-router.min.js EXPECTED_MD5 5d3e35710dbe02de78c39e3e439b8d4e)
+-file(DOWNLOAD https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js
+- js/ansi_up.js EXPECTED_MD5 158566dc1ff8f2804de972f7e841e2f6)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js
+- js/Chart.min.js EXPECTED_MD5 f6c8efa65711e0cbbc99ba72997ecd0e)
+-file(DOWNLOAD https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
+- css/bootstrap.min.css EXPECTED_MD5 5d5357cb3704e1f43a1f5bfed2aebf42)
+ # ...and compile them
+ generate_compressed_bins(${CMAKE_BINARY_DIR} js/vue-router.min.js js/vue.min.js
+ js/ansi_up.js js/Chart.min.js css/bootstrap.min.css)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/default.nix
new file mode 100644
index 000000000000..a1549de18436
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ name = "corgi-${rev}";
+ rev = "v0.2.4";
+
+ goPackagePath = "github.com/DrakeW/corgi";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "DrakeW";
+ repo = "corgi";
+ sha256 = "0h9rjv1j129n1ichwpiiyspgim1273asi3s6hgizvbc75gbbb8fn";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "CLI workflow manager";
+ longDescription = ''
+ Corgi is a command-line tool that helps with your repetitive command usages by organizing them into reusable snippet.
+ '';
+ homepage = "https://github.com/DrakeW/corgi";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/deps.nix
new file mode 100644
index 000000000000..d48b141627c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corgi/deps.nix
@@ -0,0 +1,47 @@
+[
+ {
+ goPackagePath = "github.com/chzyer/readline";
+ fetch = {
+ type = "git";
+ url = "https://github.com/chzyer/readline";
+ rev = "2972be24d48e78746da79ba8e24e8b488c9880de";
+ sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "2d684516a8861da43017284349b7e303e809ac21";
+ sha256 = "1fcfmz4wji3gqmmsdx493r7d101s58hwjalqps6hy25nva5pvmfs";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/go-homedir";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/go-homedir";
+ rev = "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
+ sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "99dc123558852f67743bd0b2caf8383cb3c6d720";
+ sha256 = "0b2rjgycgpkpvpsqgvilqkr66bfk477lyd6l0jxmgxb1h0za5s25";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "d929dcbb10863323c436af3cf76cb16a6dfc9b29";
+ sha256 = "1qjmqvszs9cmic7brm7pknq86zjra4hq923bn88blfvr3bap5bc4";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile
new file mode 100644
index 000000000000..5f817ae498a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "corundum", "=0.6.2"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile.lock
new file mode 100644
index 000000000000..596a689e3a2d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/Gemfile.lock
@@ -0,0 +1,56 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ calibrate (0.0.1)
+ caliph (0.3.1)
+ corundum (0.6.2)
+ bundler (~> 1.10)
+ caliph (~> 0.3)
+ mattock (~> 0.9)
+ paint (~> 0.8)
+ rspec (>= 2.0, < 4)
+ simplecov (>= 0.5)
+ simplecov-json (~> 0.2)
+ diff-lcs (1.3)
+ docile (1.1.5)
+ json (2.1.0)
+ mattock (0.10.1)
+ calibrate (~> 0.0.1)
+ caliph (~> 0.3)
+ rake (~> 10.0)
+ tilt (> 0)
+ valise (~> 1.1)
+ paint (0.9.0)
+ rake (10.5.0)
+ rspec (3.6.0)
+ rspec-core (~> 3.6.0)
+ rspec-expectations (~> 3.6.0)
+ rspec-mocks (~> 3.6.0)
+ rspec-core (3.6.0)
+ rspec-support (~> 3.6.0)
+ rspec-expectations (3.6.0)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.6.0)
+ rspec-mocks (3.6.0)
+ diff-lcs (>= 1.2.0, < 2.0)
+ rspec-support (~> 3.6.0)
+ rspec-support (3.6.0)
+ simplecov (0.14.1)
+ docile (~> 1.1.0)
+ json (>= 1.8, < 3)
+ simplecov-html (~> 0.10.0)
+ simplecov-html (0.10.1)
+ simplecov-json (0.2)
+ json
+ simplecov
+ tilt (2.0.7)
+ valise (1.2.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ corundum (= 0.6.2)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/default.nix
new file mode 100644
index 000000000000..62d00cbc3768
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "corundum";
+ gemdir = ./.;
+ exes = [ "corundum-skel" ];
+
+ passthru.updateScript = bundlerUpdateScript "corundum";
+
+ meta = with lib; {
+ description = "Tool and libraries for maintaining Ruby gems";
+ homepage = "https://github.com/nyarly/corundum";
+ license = licenses.mit;
+ maintainers = with maintainers; [ nyarly nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/gemset.nix
new file mode 100644
index 000000000000..e395e098e6d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/corundum/gemset.nix
@@ -0,0 +1,154 @@
+{
+ calibrate = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17kmlss7db70pjwdbbhag7mnixh8wasdq6n1v8663x50z9c7n2ng";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ caliph = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08d07n4m4yh1h9icq6n9dkw4jwgdmgd638f15mxr2pvqp4wycsnr";
+ type = "gem";
+ };
+ version = "0.3.1";
+ };
+ corundum = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y6shjrqaqyh14a1r4ic660g6jnq4abdrx9imglyalzyrlrwbsxq";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ diff-lcs = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ docile = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m8j31whq7bm5ljgmsrlfkiqvacrw6iz9wq10r3gwrv5785y8gjx";
+ type = "gem";
+ };
+ version = "1.1.5";
+ };
+ json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ mattock = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02d6igwr4sfj4jnky8d5h0rm2cc665k1bqz7sj4khzvr18nk3ai6";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ paint = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fcn7cfrhbl4nl95fmcd67q33h7bl3iafsafs6w9yj4nqzagz1yc";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ rake = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jcabbgnjc788chx31sihc5pgbqnlc1c75wakmqlbjdm8jns2m9b";
+ type = "gem";
+ };
+ version = "10.5.0";
+ };
+ rspec = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nd50hycab2a2vdah9lxi585g8f63jxjvmzmxqyln51grxwx9hzb";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ rspec-core = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18np8wyw2g79waclpaacba6nd7x60ixg07ncya0j0qj1z9b37grd";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ rspec-expectations = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "028ifzf9mqp3kxx40q1nbwj40g72g9zk0wr78l146phblkv96w0a";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ rspec-mocks = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nv6jkxy24sag1i9w9wi3850k6skk2fm6yhcrgnmlz6vmwxvizp8";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ rspec-support = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "050paqqpsml8w88nf4a15zbbj3vvm471zpv73sjfdnz7w21wnypb";
+ type = "gem";
+ };
+ version = "3.6.0";
+ };
+ simplecov = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1r9fnsnsqj432cmrpafryn8nif3x0qg9mdnvrcf0wr01prkdlnww";
+ type = "gem";
+ };
+ version = "0.14.1";
+ };
+ simplecov-html = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f3psphismgp6jp1fxxz09zbswh7m2xxxr6gqlzdh7sgv415clvm";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ simplecov-json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x9hr08pkj5d14nfzsn5h8b7ayl6q0xir45dcx5rv2a7g10kzlpp";
+ type = "gem";
+ };
+ version = "0.2";
+ };
+ tilt = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1is1ayw5049z8pd7slsk870bddyy5g2imp4z78lnvl8qsl8l0s7b";
+ type = "gem";
+ };
+ version = "2.0.7";
+ };
+ valise = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1arsbmk2gifrhv244qrld7s3202xrnxy6vlc5gqklg70dpsinbn5";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/coursier/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/coursier/default.nix
new file mode 100644
index 000000000000..b3ae0328c4e2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/coursier/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+let
+ zshCompletion = version: fetchurl {
+ url = "https://raw.githubusercontent.com/coursier/coursier/v${version}/modules/cli/src/main/resources/completions/zsh";
+ sha256 = "1mn6cdmf59nkz5012wgd3gd6hpk2w4629sk8z95230ky8487dac3";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "coursier";
+ version = "2.0.3";
+
+ src = fetchurl {
+ url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
+ sha256 = "0jvccyiqrq1iws2q9m3vivzw08jl0p77n9qbf22hgb3zhspfdnyx";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ install -Dm555 $src $out/bin/coursier
+ patchShebangs $out/bin/coursier
+ wrapProgram $out/bin/coursier --prefix PATH ":" ${jre}/bin
+
+ # copy zsh completion
+ install -Dm755 ${zshCompletion version} $out/share/zsh/site-functions/_coursier
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://get-coursier.io/";
+ description = "A Scala library to fetch dependencies from Maven / Ivy repositories";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ adelbertc nequissimus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cppclean/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cppclean/default.nix
new file mode 100644
index 000000000000..283d9845dfaa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cppclean/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "cppclean";
+ version = "0.13";
+
+ src = fetchFromGitHub {
+ owner = "myint";
+ repo = "cppclean";
+ rev = "v${version}";
+ sha256 = "081bw7kkl7mh3vwyrmdfrk3fgq8k5laacx7hz8fjpchrvdrkqph0";
+ };
+
+ postUnpack = ''
+ patchShebangs .
+ '';
+
+ checkPhase = ''
+ ./test.bash
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Finds problems in C++ source that slow development of large code bases";
+ homepage = "https://github.com/myint/cppclean";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ nthorne ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile
new file mode 100644
index 000000000000..f738129eca4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'cucumber'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
new file mode 100644
index 000000000000..82a972144938
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/Gemfile.lock
@@ -0,0 +1,34 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ backports (3.14.0)
+ builder (3.2.3)
+ cucumber (3.1.2)
+ builder (>= 2.1.2)
+ cucumber-core (~> 3.2.0)
+ cucumber-expressions (~> 6.0.1)
+ cucumber-wire (~> 0.0.1)
+ diff-lcs (~> 1.3)
+ gherkin (~> 5.1.0)
+ multi_json (>= 1.7.5, < 2.0)
+ multi_test (>= 0.1.2)
+ cucumber-core (3.2.1)
+ backports (>= 3.8.0)
+ cucumber-tag_expressions (~> 1.1.0)
+ gherkin (~> 5.0)
+ cucumber-expressions (6.0.1)
+ cucumber-tag_expressions (1.1.1)
+ cucumber-wire (0.0.1)
+ diff-lcs (1.3)
+ gherkin (5.1.0)
+ multi_json (1.13.1)
+ multi_test (0.1.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ cucumber
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/default.nix
new file mode 100644
index 000000000000..fdd77be07f7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "cucumber";
+ gemdir = ./.;
+ exes = [ "cucumber" ];
+
+ passthru.updateScript = bundlerUpdateScript "cucumber";
+
+ meta = with lib; {
+ description = "A tool for executable specifications";
+ homepage = "https://cucumber.io/";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
new file mode 100644
index 000000000000..99d519a83b68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cucumber/gemset.nix
@@ -0,0 +1,114 @@
+{
+ backports = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17j5pf0b69bkn043wi4xd530ky53jbbnljr4bsjzlm4k8bzlknfn";
+ type = "gem";
+ };
+ version = "3.14.0";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1";
+ type = "gem";
+ };
+ version = "3.2.3";
+ };
+ cucumber = {
+ dependencies = ["builder" "cucumber-core" "cucumber-expressions" "cucumber-wire" "diff-lcs" "gherkin" "multi_json" "multi_test"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1s2brssrpal8hyhcgg974x3xyhpmvpwps5ypd9p8w2lg01l1pp3j";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ cucumber-core = {
+ dependencies = ["backports" "cucumber-tag_expressions" "gherkin"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iavlh8hqj9lwljbpkw06259gdicbr1bdb6pbj5yy3n8szgr8k3c";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ cucumber-expressions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zwmv6hznyz9vk81f5dhwcr9jhxx2vmbk8yyazayvllvhy0fkpdw";
+ type = "gem";
+ };
+ version = "6.0.1";
+ };
+ cucumber-tag_expressions = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0cvmbljybws0qzjs1l67fvr9gqr005l8jk1ni5gcsis9pfmqh3vc";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ cucumber-wire = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09ymvqb0sbw2if1nxg8rcj33sf0va88ancq5nmp8g01dfwzwma2f";
+ type = "gem";
+ };
+ version = "0.0.1";
+ };
+ diff-lcs = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18w22bjz424gzafv6nzv98h0aqkwz3d9xhm7cbr1wfbyas8zayza";
+ type = "gem";
+ };
+ version = "1.3";
+ };
+ gherkin = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgcdchwwdm10rsk44frjwqd4ihprhxjbm799nscqy2q1raqfj5s";
+ type = "gem";
+ };
+ version = "5.1.0";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multi_test = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sx356q81plr67hg16jfwz9hcqvnk03bd9n75pmdw8pfxjfy1yxd";
+ type = "gem";
+ };
+ version = "0.1.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/cue/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/cue/default.nix
new file mode 100644
index 000000000000..cdd0f2ae1053
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -0,0 +1,29 @@
+{ buildGoModule, fetchgit, stdenv }:
+
+buildGoModule rec {
+ pname = "cue";
+ version = "0.2.2";
+
+ src = fetchgit {
+ url = "https://cue.googlesource.com/cue";
+ rev = "v${version}";
+ sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
+ };
+
+ vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/cue" ];
+
+ buildFlagsArray = [
+ "-ldflags=-X cuelang.org/go/cmd/cue/cmd.version=${version}"
+ ];
+
+ meta = {
+ description = "A data constraint language which aims to simplify tasks involving defining and using data";
+ homepage = "https://cuelang.org/";
+ maintainers = with stdenv.lib.maintainers; [ solson ];
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dapper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dapper/default.nix
new file mode 100644
index 000000000000..664dd61246d6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dapper/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "dapper";
+ version = "0.5.3";
+
+ goPackagePath = "github.com/rancher/dapper";
+
+ src = fetchFromGitHub {
+ owner = "rancher";
+ repo = "dapper";
+ rev = "v${version}";
+ sha256 = "1h62jahrxpmqx6r3mlakzap8gisrymgkp5syyarpab05qm1inngd";
+ };
+ patchPhase = ''
+ substituteInPlace main.go --replace 0.0.0 ${version}
+ '';
+
+ meta = with lib; {
+ description = "Docker Build Wrapper";
+ homepage = "https://github.com/rancher/dapper";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ kuznero ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dapr/cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
new file mode 100644
index 000000000000..ef61edcbb8dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule, fetchFromGitHub, stdenv }:
+
+let
+ pname = "dapr";
+ version = "0.9.0";
+ sha256 = "1vdbh5pg3j7kqqqhhf4d9xfzbpqmjc4x373sk43pb05prg4w71s7";
+ vendorSha256 = "19qcpd5i60xmsr8m8mx16imm5falkqcgqpwpx3clfvqxjyflglpp";
+in buildGoModule {
+ inherit pname version vendorSha256;
+
+ src = fetchFromGitHub {
+ inherit sha256;
+
+ owner = "dapr";
+ repo = "cli";
+ rev = "v${version}";
+ };
+
+ doCheck = false;
+
+ postInstall = ''
+ mv $out/bin/cli $out/bin/dapr
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://dapr.io";
+ description = "A CLI for managing Dapr, the distributed application runtime";
+ license = licenses.mit;
+ maintainers = with maintainers; [ lucperkins ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/cdb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/cdb/default.nix
new file mode 100644
index 000000000000..b9ebba554774
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/cdb/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib, fetchurl, fetchFromGitHub }:
+
+let
+ version = "0.75";
+ sha256 = "1iajg55n47hqxcpdzmyq4g4aprx7bzxcp885i850h355k5vmf68r";
+ # Please don’t forget to update the docs:
+ # clone https://github.com/Profpatsch/cdb-docs
+ # and create a pull request with the result of running
+ # ./update <version>
+ # from the repository’s root folder.
+ docRepo = fetchFromGitHub {
+ owner = "Profpatsch";
+ repo = "cdb-docs";
+ rev = "359b6c55c9e170ebfc88f3f38face8ae2315eacb";
+ sha256 = "1y0ivviy58i0pmavhvrpznc4yjigjknff298gnw9rkg5wxm0gbbq";
+ };
+
+in stdenv.mkDerivation {
+ pname = "cdb";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://cr.yp.to/cdb/cdb-${version}.tar.gz";
+ inherit sha256;
+ };
+
+ outputs = [ "bin" "doc" "out" ];
+
+ postPatch = ''
+ # A little patch, borrowed from Archlinux AUR, borrowed from Gentoo Portage
+ sed -e 's/^extern int errno;$/#include <errno.h>/' -i error.h
+ '';
+
+ postInstall = ''
+ # don't use make setup, but move the binaries ourselves
+ mkdir -p $bin/bin
+ install -m 755 -t $bin/bin/ cdbdump cdbget cdbmake cdbmake-12 cdbmake-sv cdbstats cdbtest
+
+ # patch paths in scripts
+ function cdbmake-subst {
+ substituteInPlace $bin/bin/$1 \
+ --replace /usr/local/bin/cdbmake $bin/bin/cdbmake
+ }
+ cdbmake-subst cdbmake-12
+ cdbmake-subst cdbmake-sv
+
+ # docs
+ mkdir -p $doc/share/cdb
+ cp -r "${docRepo}/docs" $doc/share/cdb/html
+ '';
+
+ meta = {
+ homepage = "https://cr.yp.to/cdb.html";
+ license = lib.licenses.publicDomain;
+ maintainers = [ lib.maintainers.Profpatsch ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
new file mode 100644
index 000000000000..4858b84abfa6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "dbmate";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "amacneil";
+ repo = "dbmate";
+ rev = "v${version}";
+ sha256 = "09zb7r8f6m1w9ax9ayaxjzwmqcgx5f6x4lclfi1wdn6f6qaans4w";
+ };
+
+ vendorSha256 = "012kgdvw7hj3m40v3nnpg916n02nxv19zid07h8g4qwprzg49iq2";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Database migration tool";
+ homepage = "https://github.com/amacneil/dbmate";
+ license = licenses.mit;
+ maintainers = [ maintainers.manveru ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/deps.nix
new file mode 100644
index 000000000000..97bfc10b20af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/dbmate/deps.nix
@@ -0,0 +1,84 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/davecgh/go-spew";
+ fetch = {
+ type = "git";
+ url = "https://github.com/davecgh/go-spew";
+ rev = "346938d642f2ec3594ed81d874461961cd0faa76";
+ sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-sql-driver/mysql";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-sql-driver/mysql";
+ rev = "2cc627ac8defc45d65066ae98f898166f580f9a4";
+ sha256 = "0n589y9ak2m6glaqmqlggrfv2hghy5i2906r123svf92ci4r9sww";
+ };
+ }
+ {
+ goPackagePath = "github.com/joho/godotenv";
+ fetch = {
+ type = "git";
+ url = "https://github.com/joho/godotenv";
+ rev = "a79fa1e548e2c689c241d10173efd51e5d689d5b";
+ sha256 = "09610yqswxa02905mp9cqgsm50r76saagzddc55sqav4ad04j6qm";
+ };
+ }
+ {
+ goPackagePath = "github.com/lib/pq";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lib/pq";
+ rev = "19c8e9ad00952ce0c64489b60e8df88bb16dd514";
+ sha256 = "0lm79ja5id7phf1jwf1vs987azaxis0q7qr69px0r6gqiva0q0vz";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-sqlite3";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-sqlite3";
+ rev = "6c771bb9887719704b210e87e934f08be014bdb1";
+ sha256 = "0x6s7hy3ab3qw6dfl81y7ighjva5j4rrzvqhppf1qwz5alpfmpdm";
+ };
+ }
+ {
+ goPackagePath = "github.com/pmezard/go-difflib";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pmezard/go-difflib";
+ rev = "792786c7400a136282c1664665ae0a8db921c6c2";
+ sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "b91bfb9ebec76498946beb6af7c0230c7cc7ba6c";
+ sha256 = "178xyfgsbs40jq406aqj0r67ik1b81gdc28z45nbcw6hfhz82rvl";
+ };
+ }
+ {
+ goPackagePath = "github.com/urfave/cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/urfave/cli";
+ rev = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1";
+ sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "150dc57a1b433e64154302bdc40b6bb8aefa313a";
+ sha256 = "0w3knznv39k8bm85ri62f83czcrxknql7dv6p9hk1a5jx3xljgxq";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix
new file mode 100644
index 000000000000..53f3c1df628d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/ephemeralpg/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, postgresql, getopt, makeWrapper }:
+stdenv.mkDerivation rec {
+ pname = "ephemeralpg";
+ version = "3.0";
+ src = fetchurl {
+ url = "http://ephemeralpg.org/code/${pname}-${version}.tar.gz";
+ sha256 = "1j0g7g114ma7y7sadbng5p1ss1zsm9zpicm77qspym6565733vvh";
+ };
+ buildInputs = [ makeWrapper ];
+ installPhase = ''
+ mkdir -p $out
+ PREFIX=$out make install
+ wrapProgram $out/bin/pg_tmp --prefix PATH : ${stdenv.lib.makeBinPath [ postgresql getopt ]}
+ '';
+ meta = with stdenv.lib; {
+ description = ''Run tests on an isolated, temporary PostgreSQL database.'';
+ license = licenses.isc;
+ homepage = "http://ephemeralpg.org/";
+ platforms = platforms.all;
+ maintainers = with maintainers; [ hrdinka ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/liquibase/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
new file mode 100644
index 000000000000..75ccca43a690
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchurl, jre, makeWrapper
+, mysqlSupport ? true, mysql_jdbc ? null }:
+
+assert mysqlSupport -> mysql_jdbc != null;
+
+with stdenv.lib;
+let
+ extraJars = optional mysqlSupport mysql_jdbc;
+in
+
+stdenv.mkDerivation rec {
+ pname = "liquibase";
+ version = "4.0.0";
+
+ src = fetchurl {
+ url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "06wpvqyv7w749l3ndvzg1p774rv1apbmbpwbdlad57pih4nqa7mm";
+ };
+
+ buildInputs = [ jre makeWrapper ];
+
+ unpackPhase = ''
+ tar xfz ${src}
+ '';
+
+ installPhase =
+ let addJars = dir: ''
+ for jar in ${dir}/*.jar; do
+ CP="\$CP":"\$jar"
+ done
+ '';
+ in ''
+ mkdir -p $out
+ mv ./{lib,licenses,liquibase.jar} $out/
+
+ mkdir -p $out/share/doc/${pname}-${version}
+ mv LICENSE.txt \
+ README.txt \
+ ABOUT.txt \
+ changelog.txt \
+ $out/share/doc/${pname}-${version}
+
+ mkdir -p $out/bin
+ # there’s a lot of escaping, but I’m not sure how to improve that
+ cat > $out/bin/liquibase <<EOF
+ #!/usr/bin/env bash
+ # taken from the executable script in the source
+ CP="$out/liquibase.jar"
+ ${addJars "$out/lib"}
+ ${concatStringsSep "\n" (map (p: addJars "${p}/share/java") extraJars)}
+
+ ${getBin jre}/bin/java -cp "\$CP" \$JAVA_OPTS \
+ liquibase.integration.commandline.Main \''${1+"\$@"}
+ EOF
+ chmod +x $out/bin/liquibase
+ '';
+
+ meta = {
+ description = "Version Control for your database";
+ homepage = "https://www.liquibase.org/";
+ changelog = "https://raw.githubusercontent.com/liquibase/liquibase/v${version}/changelog.txt";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/litecli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/litecli/default.nix
new file mode 100644
index 000000000000..17f7e2c7e492
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/litecli/default.nix
@@ -0,0 +1,46 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "litecli";
+ version = "1.3.2";
+
+ # Python 2 won't have prompt_toolkit 2.x.x
+ # See: https://github.com/NixOS/nixpkgs/blob/f49e2ad3657dede09dc998a4a98fd5033fb52243/pkgs/top-level/python-packages.nix#L3408
+ disabled = python3Packages.isPy27;
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0bfx7fw6jnkqxa82xvd10yx1w2wbmrrqxwbh4anp5x9wnl91a9lp";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ cli-helpers
+ click
+ configobj
+ prompt_toolkit
+ pygments
+ sqlparse
+ ];
+
+ checkInputs = with python3Packages; [
+ pytest
+ mock
+ ];
+
+ preCheck = ''
+ export XDG_CONFIG_HOME=$TMP
+ # add missing file
+ mkdir -p tests/data
+ echo -e "t1,11\nt2,22\n" > tests/data/import_data.csv
+ '';
+
+ meta = with lib; {
+ description = "Command-line interface for SQLite";
+ longDescription = ''
+ A command-line client for SQLite databases that has auto-completion and syntax highlighting.
+ '';
+ homepage = "https://litecli.com";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ Scriptkiddi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix
new file mode 100644
index 000000000000..f440e550a897
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pg_checksums/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, libxslt, docbook_xsl, postgresql }:
+
+stdenv.mkDerivation rec {
+ pname = "pg_checksums";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "credativ";
+ repo = pname;
+ rev = version;
+ sha256 = "0xc2bwp55xjnnf45lc60ldxpb5jfyi1bgfkv3nxrymcswh8yfidj";
+ };
+
+ nativeBuildInputs = [ libxslt.bin ];
+
+ buildInputs = [ postgresql ];
+
+ buildFlags = [ "all" "man" ];
+
+ preConfigure = ''
+ substituteInPlace doc/stylesheet-man.xsl \
+ --replace "http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl" "${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl"
+ '';
+
+ installPhase = ''
+ install -Dm755 -t $out/bin pg_checksums
+ install -Dm644 -t $out/share/man/man1 doc/man1/pg_checksums.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Activate/deactivate/verify checksums in offline PostgreSQL clusters";
+ homepage = "https://github.com/credativ/pg_checksums";
+ maintainers = [ maintainers.marsam ];
+ platforms = postgresql.meta.platforms;
+ license = licenses.postgresql;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/pgcli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pgcli/default.nix
new file mode 100644
index 000000000000..b6d7f65896e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pgcli/default.nix
@@ -0,0 +1,44 @@
+{ buildPythonApplication, lib, fetchPypi, isPy3k
+, cli-helpers, click, configobj, humanize, prompt_toolkit, psycopg2
+, pygments, sqlparse, pgspecial, setproctitle, keyring, pytest, mock
+}:
+
+buildPythonApplication rec {
+ pname = "pgcli";
+ version = "3.0.0";
+
+ disabled = !isPy3k;
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "10j01bd031fys1vcihibsi5rrfd8w1kgahpcsbk4l07871c24829";
+ };
+
+ propagatedBuildInputs = [
+ cli-helpers click configobj humanize prompt_toolkit psycopg2
+ pygments sqlparse pgspecial setproctitle keyring
+ ];
+
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace "prompt_toolkit>=2.0.6,<3.0.0" "prompt_toolkit"
+ '';
+
+ checkInputs = [ pytest mock ];
+
+ # `test_application_name_db_uri` fails: https://github.com/dbcli/pgcli/issues/1104
+ checkPhase = ''
+ pytest --deselect=tests/test_main.py::test_application_name_db_uri
+ '';
+
+ meta = with lib; {
+ description = "Command-line interface for PostgreSQL";
+ longDescription = ''
+ Rich command-line interface for PostgreSQL with auto-completion and
+ syntax highlighting.
+ '';
+ homepage = "https://pgcli.com";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ dywedir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/pyrseas/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pyrseas/default.nix
new file mode 100644
index 000000000000..c86a0f6df8bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/pyrseas/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, pythonPackages, fetchFromGitHub }:
+
+let
+ pgdbconn = pythonPackages.buildPythonPackage {
+ pname = "pgdbconn";
+ version = "0.8.0";
+ src = fetchFromGitHub {
+ owner = "perseas";
+ repo = "pgdbconn";
+ rev = "26c1490e4f32e4b5b925e5b82014ad106ba5b057";
+ sha256 = "09r4idk5kmqi3yig7ip61r6js8blnmac5n4q32cdcbp1rcwzdn6z";
+ };
+ # The tests are impure (they try to access a PostgreSQL server)
+ doCheck = false;
+ propagatedBuildInputs = [
+ pythonPackages.psycopg2
+ pythonPackages.pytest
+ ];
+ };
+in
+
+pythonPackages.buildPythonApplication {
+ pname = "pyrseas";
+ version = "0.8.0";
+ src = fetchFromGitHub {
+ owner = "perseas";
+ repo = "Pyrseas";
+ rev = "2e9be763e61168cf20d28bd69010dc5875bd7b97";
+ sha256 = "1h9vahplqh0rzqjsdq64qqar6hj1bpbc6nl1pqwwgca56385br8r";
+ };
+ # The tests are impure (they try to access a PostgreSQL server)
+ doCheck = false;
+ propagatedBuildInputs = [
+ pythonPackages.psycopg2
+ pythonPackages.pytest
+ pythonPackages.pyyaml
+ pgdbconn
+ ];
+ meta = {
+ description = "A declarative language to describe PostgreSQL databases";
+ homepage = "https://perseas.github.io/";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ pmeunier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix
new file mode 100644
index 000000000000..00309c343d20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/schemaspy/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchurl, jre, makeWrapper, graphviz }:
+
+stdenv.mkDerivation rec {
+ version = "6.1.0";
+ pname = "schemaspy";
+
+ src = fetchurl {
+ url = "https://github.com/schemaspy/schemaspy/releases/download/v${version}/${pname}-${version}.jar";
+ sha256 = "0lgz6b17hx9857fb2l03ggz8y3n8a37vrcsylif0gmkwj1v4qgl7";
+ };
+
+ dontUnpack = true;
+
+ buildInputs = [
+ jre
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ wrappedPath = lib.makeBinPath [
+ graphviz
+ ];
+
+ installPhase = ''
+ install -D ${src} "$out/share/java/${pname}-${version}.jar"
+
+ makeWrapper ${jre}/bin/java $out/bin/schemaspy \
+ --add-flags "-jar $out/share/java/${pname}-${version}.jar" \
+ --prefix PATH : "$wrappedPath"
+ '';
+
+ meta = with lib; {
+ homepage = "http://schemaspy.org";
+ description = "Document your database simply and easily";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jraygauthier ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/shmig/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/shmig/default.nix
new file mode 100644
index 000000000000..ca07a0569407
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/shmig/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub
+, withMySQL ? true, withPSQL ? false, withSQLite ? false
+, mysql, postgresql, sqlite, gawk, gnugrep, findutils, gnused
+, lib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "shmig";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "mbucc";
+ repo = "shmig";
+ rev = "v${version}";
+ sha256 = "15ry1d51d6dlzzzhck2x57wrq48vs4n9pp20bv2sz6nk92fva5l5";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postPatch = ''
+ patchShebangs .
+
+ substituteInPlace shmig \
+ --replace "\`which mysql\`" "${lib.optionalString withMySQL "${mysql.client}/bin/mysql"}" \
+ --replace "\`which psql\`" "${lib.optionalString withPSQL "${postgresql}/bin/psql"}" \
+ --replace "\`which sqlite3\`" "${lib.optionalString withSQLite "${sqlite}/bin/sqlite3"}" \
+ --replace "awk" "${gawk}/bin/awk" \
+ --replace "grep" "${gnugrep}/bin/grep" \
+ --replace "find" "${findutils}/bin/find" \
+ --replace "sed" "${gnused}/bin/sed"
+ '';
+
+ preBuild = ''
+ mkdir -p $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Minimalistic database migration tool with MySQL, PostgreSQL and SQLite support";
+ homepage = "https://github.com/mbucc/shmig";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix
new file mode 100644
index 000000000000..33b2abce277b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlcheck/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "sqlcheck";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "jarulraj";
+ repo = "sqlcheck";
+ rev = "v${version}";
+ sha256 = "0v8idyhwhbphxzmh03lih3wd9gdq317zn7wsf01infih7b6l0k69";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Automatically identify anti-patterns in SQL queries";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
new file mode 100644
index 000000000000..49cc7b42b3da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, jdk }:
+
+let
+ version = "20.2.0.175.1842";
+
+ desktopItem = makeDesktopItem {
+ name = "sqldeveloper";
+ exec = "sqldeveloper";
+ icon = "sqldeveloper";
+ desktopName = "Oracle SQL Developer";
+ genericName = "Oracle SQL Developer";
+ comment = "Oracle's Oracle DB GUI client";
+ categories = "Development;";
+ };
+in
+ stdenv.mkDerivation {
+
+ inherit version;
+ pname = "sqldeveloper";
+
+ src = requireFile rec {
+ name = "sqldeveloper-${version}-no-jre.zip";
+ url = "https://www.oracle.com/tools/downloads/sqldev-downloads.html";
+ message = ''
+ This Nix expression requires that ${name} already be part of the store. To
+ obtain it you need to
+
+ - navigate to ${url}
+ - make sure that it says "Version ${version}" above the list of downloads
+ - if it does not, click on the "Previous Version" link below the downloads
+ and repeat until the version is correct. This is necessarry because as the
+ time of this writing there exists no permanent link for the current version
+ yet.
+ Also consider updating this package yourself (you probably just need to
+ change the `version` variable and update the sha256 to the one of the
+ new file) or opening an issue at the nixpkgs repo.
+ - accept the license agreement
+ - download the file listed under "Other Platforms"
+ - sign in or create an oracle account if neccessary
+
+ and then add the file to the Nix store using either:
+
+ nix-store --add-fixed sha256 ${name}
+
+ or
+
+ nix-prefetch-url --type sha256 file:///path/to/${name}
+ '';
+ sha256 = "1fcaq7ffn1q35f7rvp3ybs2191lvfc0jgjx7y4wn1nqglgj7zy7n";
+ };
+
+ buildInputs = [ makeWrapper unzip ];
+
+ unpackCmd = "unzip $curSrc";
+
+ installPhase = ''
+ mkdir -p $out/libexec $out/share/{applications,pixmaps}
+ mv * $out/libexec/
+
+ mv $out/libexec/icon.png $out/share/pixmaps/sqldeveloper.png
+ cp ${desktopItem}/share/applications/* $out/share/applications
+
+ makeWrapper $out/libexec/sqldeveloper/bin/sqldeveloper $out/bin/sqldeveloper \
+ --set JAVA_HOME ${jdk.home} \
+ --run "cd $out/libexec/sqldeveloper/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Oracle's Oracle DB GUI client";
+ longDescription = ''
+ Oracle SQL Developer is a free integrated development environment that
+ simplifies the development and management of Oracle Database in both
+ traditional and Cloud deployments. SQL Developer offers complete
+ end-to-end development of your PL/SQL applications, a worksheet for
+ running queries and scripts, a DBA console for managing the database,
+ a reports interface, a complete data modeling solution, and a migration
+ platform for moving your 3rd party databases to Oracle.
+ '';
+ homepage = "http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ ardumont ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix
new file mode 100644
index 000000000000..9a9314fde9b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlite-web/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "sqlite-web";
+ version = "0.3.6";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "17pymadm063358nji70xzma64zkfv26c3pai5i1whsfp9ahqzasg";
+ };
+
+ propagatedBuildInputs = with python3Packages; [ flask peewee pygments ];
+
+ # no tests in repository
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Web-based SQLite database browser";
+ homepage = "https://github.com/coleifer/sqlite-web";
+ license = licenses.mit;
+ maintainers = [ maintainers.costrouc ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
new file mode 100644
index 000000000000..7fcdbd1a6ad8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, antlr
+, qtbase, qttools, sqlite }:
+
+mkDerivation rec {
+ pname = "sqlitebrowser";
+ version = "3.12.0";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = version;
+ sha256 = "1arv4rzl8s1vjjqzz35l2b1rfzr2b8b23v97fdw1kdxpwvs63l99";
+ };
+
+ # We should be using qscintilla from nixpkgs instead of the vendored version,
+ # but qscintilla is currently in a bit of a mess as some consumers expect a
+ # -qt4 or -qt5 prefix while others do not.
+ # We *really* should get that cleaned up.
+ buildInputs = [ antlr qtbase sqlite ];
+
+ nativeBuildInputs = [ cmake qttools ];
+
+ meta = with lib; {
+ description = "DB Browser for SQLite";
+ homepage = "https://sqlitebrowser.org/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix
new file mode 100644
index 000000000000..924a82bfd85e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/squirrel-sql/default.nix
@@ -0,0 +1,79 @@
+# To enable specific database drivers, override this derivation and pass the
+# driver packages in the drivers argument (e.g. mysql_jdbc, postgresql_jdbc).
+{ stdenv, fetchurl, makeDesktopItem, makeWrapper, unzip
+, jre
+, drivers ? []
+}:
+let
+ version = "4.1.0";
+in stdenv.mkDerivation rec {
+ pname = "squirrel-sql";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/squirrel-sql/1-stable/${version}-plainzip/squirrelsql-${version}-standard.zip";
+ sha256 = "0ni7cva0acrin5bkcfkiiv28sf58dzz7xsbl3y4536hmph0g68k6";
+ };
+
+ nativeBuildInputs = [ makeWrapper unzip ];
+ buildInputs = [ jre ];
+
+ unpackPhase = ''
+ runHook preUnpack
+ unzip ${src}
+ runHook postUnpack
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+ cd squirrelsql-${version}-standard
+ chmod +x squirrel-sql.sh
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/share/squirrel-sql
+ cp -r . $out/share/squirrel-sql
+
+ mkdir -p $out/bin
+ cp=""
+ for pkg in ${builtins.concatStringsSep " " drivers}; do
+ if test -n "$cp"; then
+ cp="$cp:"
+ fi
+ cp="$cp"$(echo $pkg/share/java/*.jar | tr ' ' :)
+ done
+ makeWrapper $out/share/squirrel-sql/squirrel-sql.sh $out/bin/squirrel-sql \
+ --set CLASSPATH "$cp" \
+ --set JAVA_HOME "${jre}"
+ # Make sure above `CLASSPATH` gets picked up
+ substituteInPlace $out/share/squirrel-sql/squirrel-sql.sh --replace "-cp \"\$CP\"" "-cp \"\$CLASSPATH:\$CP\""
+
+ mkdir -p $out/share/icons/hicolor/32x32/apps
+ ln -s $out/share/squirrel-sql/icons/acorn.png \
+ $out/share/icons/hicolor/32x32/apps/squirrel-sql.png
+ ln -s ${desktopItem}/share/applications $out/share
+
+ runHook postInstall
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "squirrel-sql";
+ exec = "squirrel-sql";
+ comment = meta.description;
+ desktopName = "SQuirreL SQL";
+ genericName = "SQL Client";
+ categories = "Development;";
+ icon = "squirrel-sql";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Universal SQL Client";
+ homepage = "http://squirrel-sql.sourceforge.net/";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ khumba ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
new file mode 100644
index 000000000000..a0e05bf4ae57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "timescaledb-parallel-copy";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "timescale";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0r8c78l8vg7l24c3vzs2qr2prfjpagvdkp95fh9gyz76nvik29ba";
+ };
+
+ vendorSha256 = "03siay3hv1sgmmp7w4f9b0xb8c6bnbx0v4wy5grjl5k04zhnj76b";
+
+ meta = with stdenv.lib; {
+ description = "Bulk, parallel insert of CSV records into PostgreSQL";
+ homepage = "https://github.com/timescale/timescaledb-parallel-copy";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
new file mode 100644
index 000000000000..2079925049dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "timescaledb-tune";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ owner = "timescale";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vncwwvw7y6g3crd4n5vvd6jwdsa8vsvsmfwy5mad4j6lix09ajx";
+ };
+
+ vendorSha256 = "0hbpprbxs19fcar7xcy42kn9yfzhal2zsv5pml9ghiv2s61yns4z";
+
+ meta = with stdenv.lib; {
+ description = "A tool for tuning your TimescaleDB for better performance";
+ homepage = "https://github.com/timescale/timescaledb-tune";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/database/webdis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/database/webdis/default.nix
new file mode 100644
index 000000000000..ec22252cbe02
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/database/webdis/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, hiredis, http-parser, jansson, libevent, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "webdis";
+ version = "0.1.11";
+
+ src = fetchFromGitHub {
+ owner = "nicolasff";
+ repo = pname;
+ rev = version;
+ sha256 = "162xbx4dhfx4a6sksm7x60gr7ylyila4vidmdf0bn7xlvglggazf";
+ };
+
+ buildInputs = [ hiredis http-parser jansson libevent ];
+
+ makeFlags = [
+ "PREFIX=${placeholder "out"}"
+ "CONFDIR=${placeholder "out"}/share/webdis"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A Redis HTTP interface with JSON output";
+ homepage = "https://webd.is/";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ wucke13 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dcadec/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dcadec/default.nix
new file mode 100644
index 000000000000..55f888056cf7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dcadec/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "dcadec";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "foo86";
+ repo = pname;
+ rev = "v" + version;
+ sha256 = "07nd0ajizrp1w02bsyfcv18431r8m8rq8gjfmz9wmckpg7cxj2hs";
+ };
+
+ installPhase = "make PREFIX=/ DESTDIR=$out install";
+
+ doCheck = false; # fails with "ERROR: Run 'git submodule update --init test/samples' first."
+
+ meta = with stdenv.lib; {
+ description = "DTS Coherent Acoustics decoder with support for HD extensions";
+ maintainers = with maintainers; [ edwtjo ];
+ homepage = "https://github.com/foo86/dcadec";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/deadcode/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/deadcode/default.nix
new file mode 100644
index 000000000000..516eeff2091f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/deadcode/default.nix
@@ -0,0 +1,31 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+# TODO(yl): should we package https://github.com/remyoudompheng/go-misc instead of
+# the standalone extract of deadcode from it?
+buildGoPackage rec {
+ pname = "deadcode-unstable";
+ version = "2016-07-24";
+ rev = "210d2dc333e90c7e3eedf4f2242507a8e83ed4ab";
+
+ goPackagePath = "github.com/tsenart/deadcode";
+ excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "tsenart";
+ repo = "deadcode";
+ sha256 = "05kif593f4wygnrq2fdjhn7kkcpdmgjnykcila85d0gqlb1f36g0";
+ };
+
+ meta = with lib; {
+ description = "deadcode is a very simple utility which detects unused declarations in a Go package";
+ homepage = "https://github.com/remyoudompheng/go-misc/tree/master/deadcode";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/deis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/deis/default.nix
new file mode 100644
index 000000000000..4a07a05a6368
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/deis/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "deis";
+ version = "1.13.4";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/deis/deis";
+ subPackages = [ "client" ];
+
+ postInstall = ''
+ if [ -f "$out/bin/client" ]; then
+ mv "$out/bin/client" "$out/bin/deis"
+ fi
+ '';
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "deis";
+ repo = "deis";
+ sha256 = "0hndzvlgpfm83c4i1c88byv8j9clagswa79nny8wrw33dx90dym1";
+ };
+
+ preBuild = ''
+ export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://deis.io";
+ description = "A command line utility used to interact with the Deis open source PaaS";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/deisctl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/deisctl/default.nix
new file mode 100644
index 000000000000..a245a06afe16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/deisctl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "deis";
+ version = "1.13.3";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/deis/deis";
+ subPackages = [ "deisctl" ];
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "deis";
+ repo = "deis";
+ sha256 = "15q44jyjms8fdmly0z4sn4ymf1dx6cmdavgixjixdj2wbjw0yi2p";
+ };
+
+ preBuild = ''
+ export GOPATH=$GOPATH:$NIX_BUILD_TOP/go/src/${goPackagePath}/Godeps/_workspace
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://deis.io";
+ description = "A command-line utility used to provision and operate a Deis cluster";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/delve/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/delve/default.nix
new file mode 100644
index 000000000000..892ee6dd3297
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/delve/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "delve";
+ version = "1.5.0";
+
+ goPackagePath = "github.com/go-delve/delve";
+ excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
+
+ src = fetchFromGitHub {
+ owner = "go-delve";
+ repo = "delve";
+ rev = "v${version}";
+ sha256 = "0m7fryclrj0qzqzcjn0xc9vl43srijyfahfkqdbm59xgpws67anp";
+ };
+
+ meta = with stdenv.lib; {
+ description = "debugger for the Go programming language";
+ homepage = "https://github.com/derekparker/delve";
+ maintainers = with maintainers; [ vdemeester ];
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" ] ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dep/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dep/default.nix
new file mode 100644
index 000000000000..8b7c54832e28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dep/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "dep";
+ version = "0.5.4";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/golang/dep";
+ subPackages = [ "cmd/dep" ];
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "golang";
+ repo = "dep";
+ sha256 = "02akzbjar1v01rdal746vk6mklff29yk2mqfyjk1zrs0mlg38ygd";
+ };
+
+ buildFlagsArray = ("-ldflags=-s -w -X main.commitHash=${rev} -X main.version=${version}");
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/golang/dep";
+ description = "Go dependency management tool";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ carlsverre rvolosatovs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/default.nix
new file mode 100644
index 000000000000..9d14f7c1c1e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, buildGoPackage
+, makeWrapper, nix-prefetch-scripts }:
+
+buildGoPackage rec {
+ pname = "dep2nix";
+ version = "unstable-2019-04-02";
+
+ goPackagePath = "github.com/nixcloud/dep2nix";
+
+ src = fetchFromGitHub {
+ owner = "nixcloud";
+ repo = pname;
+ rev = "830684f920333b8ff0946d6b807e8be642eec3ef";
+ sha256 = "17sjxhzhmz4893x3x054anp4xvqd1px15nv3fj2m7i6r0vbgpm0j";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ postFixup = ''
+ wrapProgram $out/bin/dep2nix \
+ --prefix PATH : ${nix-prefetch-scripts}/bin
+ '';
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Convert `Gopkg.lock` files from golang dep into `deps.nix`";
+ license = licenses.bsd3;
+ homepage = "https://github.com/nixcloud/dep2nix";
+ maintainers = [ maintainers.mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/deps.nix
new file mode 100644
index 000000000000..ceedc50fc887
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dep2nix/deps.nix
@@ -0,0 +1,129 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/Masterminds/semver";
+ fetch = {
+ type = "git";
+ url = "https://github.com/carolynvs/semver.git";
+ rev = "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
+ sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
+ };
+ }
+ {
+ goPackagePath = "github.com/Masterminds/vcs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/vcs";
+ rev = "6f1c6d150500e452704e9863f68c2559f58616bf";
+ sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
+ };
+ }
+ {
+ goPackagePath = "github.com/armon/go-radix";
+ fetch = {
+ type = "git";
+ url = "https://github.com/armon/go-radix";
+ rev = "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
+ sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
+ };
+ }
+ {
+ goPackagePath = "github.com/boltdb/bolt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/boltdb/bolt";
+ rev = "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
+ sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/dep";
+ fetch = {
+ type = "git";
+ url = "https://github.com/CrushedPixel/dep";
+ rev = "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
+ sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
+ sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
+ };
+ }
+ {
+ goPackagePath = "github.com/jmank88/nuts";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jmank88/nuts";
+ rev = "8b28145dffc87104e66d074f62ea8080edfad7c8";
+ sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
+ };
+ }
+ {
+ goPackagePath = "github.com/nightlyone/lockfile";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nightlyone/lockfile";
+ rev = "6a197d5ea61168f2ac821de2b7f011b250904900";
+ sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "acdc4509485b587f5e675510c4f2c63e90ff68a8";
+ sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "645ef00459ed84a119197bfb8d8205042c6df63d";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+ {
+ goPackagePath = "github.com/sdboyer/constext";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sdboyer/constext";
+ rev = "836a144573533ea4da4e6929c235fd348aed1c80";
+ sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
+ sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
+ sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "37707fdb30a5b38865cfb95e5aab41707daec7fd";
+ sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/detect-secrets/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/detect-secrets/default.nix
new file mode 100644
index 000000000000..1e42a32f7caa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/detect-secrets/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonApplication, fetchFromGitHub, isPy27, pyyaml, unidiff, configparser, enum34, future, functools32, mock, pytest }:
+
+buildPythonApplication rec {
+ pname = "detect-secrets";
+ version = "0.12.4";
+
+ # PyPI tarball doesn't ship tests
+ src = fetchFromGitHub {
+ owner = "Yelp";
+ repo = "detect-secrets";
+ rev = "v${version}";
+ sha256 = "01y5xd0irxxib4wnf5834gwa7ibb81h5y4dl8b26gyzgvm5zfpk1";
+ };
+
+ propagatedBuildInputs = [ pyyaml ]
+ ++ lib.optionals isPy27 [ configparser enum34 future functools32 ];
+
+ checkInputs = [ mock pytest unidiff ];
+
+ # deselect tests which require git setup
+ checkPhase = ''
+ PYTHONPATH=$PWD:$PYTHONPATH pytest \
+ --deselect tests/main_test.py::TestMain \
+ --deselect tests/pre_commit_hook_test.py::TestPreCommitHook \
+ --deselect tests/core/baseline_test.py::TestInitializeBaseline
+ '';
+
+ meta = with lib; {
+ description = "An enterprise friendly way of detecting and preventing secrets in code";
+ homepage = "https://github.com/Yelp/detect-secrets";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/devd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/devd/default.nix
new file mode 100644
index 000000000000..2d5a38458d3a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/devd/default.nix
@@ -0,0 +1,20 @@
+{ buildGoPackage, fetchFromGitHub, stdenv }:
+
+buildGoPackage rec {
+ pname = "devd";
+ version = "0.9";
+ src = fetchFromGitHub {
+ owner = "cortesi";
+ repo = "devd";
+ rev = "v${version}";
+ sha256 = "1b02fj821k68q7xl48wc194iinqw9jiavzfl136hlzvg4m07p1wf";
+ };
+ goPackagePath = "github.com/cortesi/devd";
+ subPackages = [ "cmd/devd" ];
+ meta = with stdenv.lib; {
+ description = "A local webserver for developers";
+ homepage = "https://github.com/cortesi/devd";
+ license = licenses.mit;
+ maintainers = with maintainers; [ brianhicks ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-client/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-client/default.nix
new file mode 100644
index 000000000000..1a0fdf403082
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-client/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+# buildInputs
+, glibcLocales
+, pkginfo
+, check-manifest
+# propagatedBuildInputs
+, py
+, devpi-common
+, pluggy
+, setuptools
+# CheckInputs
+, pytest
+, pytest-flake8
+, webtest
+, mock
+, devpi-server
+, tox
+, sphinx
+, wheel
+, git
+, mercurial
+}:
+
+buildPythonApplication rec {
+ pname = "devpi-client";
+ version = "5.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1y8r1pjav0gyrbnyqjnc202sa962n1gasi8233xj7jc39lv3iq40";
+ };
+
+ buildInputs = [ glibcLocales pkginfo check-manifest ];
+
+ propagatedBuildInputs = [ py devpi-common pluggy setuptools ];
+
+ checkInputs = [
+ pytest pytest-flake8 webtest mock
+ devpi-server tox
+ sphinx wheel git mercurial
+ ];
+
+ # --fast skips tests which try to start a devpi-server improperly
+ checkPhase = ''
+ HOME=$TMPDIR py.test --fast
+ '';
+
+ LC_ALL = "en_US.UTF-8";
+
+ meta = with stdenv.lib; {
+ homepage = "http://doc.devpi.net";
+ description = "Client for devpi, a pypi index server and packaging meta tool";
+ license = licenses.mit;
+ maintainers = with maintainers; [ lewo makefu ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-server/default.nix
new file mode 100644
index 000000000000..53950d08f76b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/devpi-server/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, python3Packages, nginx }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "devpi-server";
+ version = "6.0.0.dev0";
+
+ src = fetchFromGitHub {
+ owner = "devpi";
+ repo = "devpi";
+ rev = "68ee291ef29a93f6d921d4927aec8d13919b4a4c";
+ sha256 = "1ivd5dy9f2gq07w8n2gywa0n0d9wv8644l53ni9fz7i69jf8q2fm";
+ };
+ sourceRoot = "source/server";
+
+ propagatedBuildInputs = with python3Packages; [
+ py
+ appdirs
+ devpi-common
+ defusedxml
+ execnet
+ itsdangerous
+ repoze_lru
+ passlib
+ pluggy
+ pyramid
+ strictyaml
+ waitress
+ ];
+
+ checkInputs = with python3Packages; [
+ beautifulsoup4
+ nginx
+ pytest
+ pytest-flake8
+ pytestpep8
+ webtest
+ ] ++ stdenv.lib.optionals isPy27 [ mock ];
+
+ # root_passwd_hash tries to write to store
+ # TestMirrorIndexThings tries to write to /var through ngnix
+ # nginx tests try to write to /var
+ checkPhase = ''
+ PATH=$PATH:$out/bin HOME=$TMPDIR pytest \
+ ./test_devpi_server --slow -rfsxX \
+ --ignore=test_devpi_server/test_nginx_replica.py \
+ --ignore=test_devpi_server/test_streaming_nginx.py \
+ --ignore=test_devpi_server/test_streaming_replica_nginx.py \
+ -k 'not root_passwd_hash_option \
+ and not TestMirrorIndexThings'
+ '';
+
+ meta = with stdenv.lib;{
+ homepage = "http://doc.devpi.net";
+ description = "Github-style pypi index server and packaging meta tool";
+ license = licenses.mit;
+ maintainers = with maintainers; [ makefu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/devtodo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/devtodo/default.nix
new file mode 100644
index 000000000000..f4a974da3476
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/devtodo/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, readline, ncurses }:
+
+stdenv.mkDerivation rec {
+ pname = "devtodo";
+ version = "0.1.20";
+
+ src = fetchurl {
+ url = "https://swapoff.org/files/devtodo/${pname}-${version}.tar.gz";
+ sha256 = "029y173njydzlznxmdizrrz4wcky47vqhl87fsb7xjcz9726m71p";
+ };
+
+ buildInputs = [ readline ncurses ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://swapoff.org/devtodo1.html";
+ description = "A hierarchical command-line task manager";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.woffs ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch
new file mode 100644
index 000000000000..342ac1baa102
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/allow-warnings.patch
@@ -0,0 +1,88 @@
+diff --git a/diesel/src/lib.rs b/diesel/src/lib.rs
+index 4e743eb4..97c53ed8 100644
+--- a/diesel/src/lib.rs
++++ b/diesel/src/lib.rs
+@@ -131,7 +131,6 @@
+ #![cfg_attr(feature = "unstable", feature(specialization, try_from))]
+ // Built-in Lints
+ #![deny(
+- warnings,
+ missing_debug_implementations,
+ missing_copy_implementations,
+ missing_docs
+diff --git a/diesel_cli/src/main.rs b/diesel_cli/src/main.rs
+index 741ca003..cf93bb8f 100644
+--- a/diesel_cli/src/main.rs
++++ b/diesel_cli/src/main.rs
+@@ -1,5 +1,5 @@
+ // Built-in Lints
+-#![deny(warnings, missing_copy_implementations)]
++#![deny(missing_copy_implementations)]
+ // Clippy lints
+ #![allow(clippy::option_map_unwrap_or_else, clippy::option_map_unwrap_or)]
+ #![warn(
+diff --git a/diesel_cli/tests/tests.rs b/diesel_cli/tests/tests.rs
+index 2edee846..c96917c4 100644
+--- a/diesel_cli/tests/tests.rs
++++ b/diesel_cli/tests/tests.rs
+@@ -1,5 +1,3 @@
+-#![deny(warnings)]
+-
+ extern crate chrono;
+ extern crate diesel;
+ #[macro_use]
+diff --git a/diesel_derives/src/lib.rs b/diesel_derives/src/lib.rs
+index 2c43b2a3..44dcf3f9 100644
+--- a/diesel_derives/src/lib.rs
++++ b/diesel_derives/src/lib.rs
+@@ -1,6 +1,6 @@
+ #![recursion_limit = "1024"]
+ // Built-in Lints
+-#![deny(warnings, missing_copy_implementations)]
++#![deny(missing_copy_implementations)]
+ // Clippy lints
+ #![allow(
+ clippy::needless_pass_by_value,
+diff --git a/diesel_derives/tests/tests.rs b/diesel_derives/tests/tests.rs
+index 636fea66..f86f3dcc 100644
+--- a/diesel_derives/tests/tests.rs
++++ b/diesel_derives/tests/tests.rs
+@@ -1,5 +1,3 @@
+-#![deny(warnings)]
+-
+ #[macro_use]
+ extern crate cfg_if;
+ #[macro_use]
+diff --git a/diesel_migrations/migrations_internals/src/lib.rs b/diesel_migrations/migrations_internals/src/lib.rs
+index 933e21a8..7c4d0222 100644
+--- a/diesel_migrations/migrations_internals/src/lib.rs
++++ b/diesel_migrations/migrations_internals/src/lib.rs
+@@ -1,5 +1,5 @@
+ // Built-in Lints
+-#![deny(warnings, missing_debug_implementations, missing_copy_implementations)]
++#![deny(missing_debug_implementations, missing_copy_implementations)]
+ // Clippy lints
+ #![allow(
+ clippy::option_map_unwrap_or_else,
+diff --git a/diesel_migrations/migrations_macros/src/lib.rs b/diesel_migrations/migrations_macros/src/lib.rs
+index 0a83234e..2f509c04 100644
+--- a/diesel_migrations/migrations_macros/src/lib.rs
++++ b/diesel_migrations/migrations_macros/src/lib.rs
+@@ -1,5 +1,5 @@
+ // Built-in Lints
+-#![deny(warnings, missing_debug_implementations, missing_copy_implementations)]
++#![deny(missing_debug_implementations, missing_copy_implementations)]
+ // Clippy lints
+ #![allow(
+ clippy::option_map_unwrap_or_else,
+diff --git a/diesel_migrations/src/lib.rs b/diesel_migrations/src/lib.rs
+index c85414e5..f025f237 100644
+--- a/diesel_migrations/src/lib.rs
++++ b/diesel_migrations/src/lib.rs
+@@ -1,5 +1,5 @@
+ // Built-in Lints
+-#![deny(warnings, missing_copy_implementations)]
++#![deny(missing_copy_implementations)]
+ // Clippy lints
+ #![allow(
+ clippy::needless_pass_by_value,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch
new file mode 100644
index 000000000000..26d583f9a11d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/cargo-lock.patch
@@ -0,0 +1,1589 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..f20a5bf
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1583 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "advanced-blog-cli"
++version = "0.1.0"
++dependencies = [
++ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bcrypt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "aho-corasick"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "aho-corasick"
++version = "0.6.10"
++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 = "all_about_inserts"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "all_about_inserts_mysql"
++version = "0.1.0"
++dependencies = [
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "all_about_inserts_sqlite"
++version = "0.1.0"
++dependencies = [
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "all_about_updates"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (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 = "assert_matches"
++version = "1.3.0"
++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.62 (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.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (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.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "barrel"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.9.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bcrypt"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bigdecimal"
++version = "0.0.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-bigint 0.2.2 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "bumpalo"
++version = "2.6.0"
++source = "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 = "c2-chacha"
++version = "0.2.2"
++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)",
++ "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "js-sys 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen 0.2.50 (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.1.0 (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.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "derive-error-chain"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel"
++version = "1.4.0"
++dependencies = [
++ "bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-bigint 0.2.2 (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.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "r2d2 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel"
++version = "1.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_cli"
++version = "1.4.0"
++dependencies = [
++ "barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_1_mysql"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_1_pg"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_1_sqlite"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_2_mysql"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_2_pg"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_2_sqlite"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_3_mysql"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_3_pg"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_demo_step_3_sqlite"
++version = "0.1.0"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_derives"
++version = "1.4.0"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_derives"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++replace = "diesel_derives 1.4.0"
++
++[[package]]
++name = "diesel_infer_schema"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "infer_schema_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_migrations"
++version = "1.4.0"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "migrations_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "diesel_migrations"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++replace = "diesel_migrations 1.4.0"
++
++[[package]]
++name = "diesel_tests"
++version = "0.1.0"
++dependencies = [
++ "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.0",
++ "diesel_infer_schema 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "difference"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "dotenv"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "derive-error-chain 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "env_logger"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "error-chain"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.35 (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 = "gcc"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "getrandom"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "idna"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "infer_schema_internals"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "infer_schema_macros"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "infer_schema_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ipnetwork"
++version = "0.13.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "js-sys"
++version = "0.3.27"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (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.62"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "libsqlite3-sys"
++version = "0.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "lock_api"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "lock_api"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "log"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "log 0.4.8 (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.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memchr"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.62 (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 = "migrations_internals"
++version = "1.4.0"
++dependencies = [
++ "barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "migrations_internals"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++replace = "migrations_internals 1.4.0"
++
++[[package]]
++name = "migrations_macros"
++version = "1.4.0"
++dependencies = [
++ "migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "migrations_macros"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++replace = "migrations_macros 1.4.0"
++
++[[package]]
++name = "mysqlclient-sys"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-bigint"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.8 (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.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "percent-encoding"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "pq-sys"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "0.4.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.2"
++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 = "quickcheck"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "0.3.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "quote"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (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.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "r2d2"
++version = "0.8.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.3.23"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1 (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 = "rand"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_xorshift 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 = "rand"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (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_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.1.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 = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_isaac"
++version = "0.1.1"
++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 = "rand_jitter"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (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.62 (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 = "rand_pcg"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_xorshift"
++version = "0.1.1"
++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 = "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 = "regex"
++version = "0.1.80"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.6.10 (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.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "regex-syntax"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "remove_dir_all"
++version = "0.5.2"
++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 = "rust-crypto"
++version = "0.2.36"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (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 = "rustc-serialize"
++version = "0.3.24"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "safemem"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "scheduled-thread-pool"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "scopeguard"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde"
++version = "1.0.99"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.99"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.2 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "smallvec"
++version = "0.6.10"
++source = "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 = "structopt"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "structopt-derive"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "syn"
++version = "0.11.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "syn"
++version = "0.15.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.2 (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 = "synom"
++version = "0.11.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tempdir"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tempfile"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tempfile"
++version = "3.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (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-id"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "0.2.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "thread-id 2.0.0 (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 = "time"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.4.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ucd-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "smallvec 0.6.10 (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.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.1.0"
++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 = "url"
++version = "1.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "utf8-ranges"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "utf8-ranges"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "uuid"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "vcpkg"
++version = "0.2.7"
++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 = "wasi"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "wasm-bindgen"
++version = "0.2.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen-macro 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasm-bindgen-backend"
++version = "0.2.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 1.0.2 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasm-bindgen-macro"
++version = "0.2.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen-macro-support 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasm-bindgen-macro-support"
++version = "0.2.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.2 (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.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasm-bindgen-shared"
++version = "0.2.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++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-build"
++version = "0.1.1"
++source = "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.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ca972c2ea5f742bfce5687b9aef75506a764f61d37f8f649047846a9686ddb66"
++"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
++"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++"checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5"
++"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
++"checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875"
++"checksum backtrace 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "1371048253fa3bac6704bfd6bbfc922ee9bdcee8881330d40f308b81cc5adc55"
++"checksum backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "82a830b4ef2d1124a711c71d263c5abdc710ef8e907bd508c88be475cebc422b"
++"checksum barrel 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f2016bcea86b2a1a807753dc2b6ba682fa24e14e50c7474f4b1a0330949c86fb"
++"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
++"checksum bcrypt 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4a6f09cde06fb2cd52a77123c36bfd1e8e60cf13a8bac6ba8f451dabff4644c8"
++"checksum bigdecimal 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "679e21a6734fdfc63378aea80c2bf31e6ac8ced21ed33e1ee37f8f7bf33c2056"
++"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
++"checksum bumpalo 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad807f2fc2bf185eeb98ff3a901bd46dc5ad58163d0fa4577ba0d25674d71708"
++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
++"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
++"checksum cc 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "8dae9c4b8fedcae85592ba623c4fd08cfdab3e3b72d6df780c6ead964a69bfff"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum chrono 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "27429a03ca54100bf6bdc726c09adc46a74187ac93f9ce96dc7aaa9594ebf707"
++"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 derive-error-chain 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c9ca9ade651388daad7c993f005d0d20c4f6fe78c1cdc93e95f161c6f5ede4a"
++"checksum diesel 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8d24935ba50c4a8dc375a0fd1f8a2ba6bdbdc4125713126a74b965d6a01a06d7"
++"checksum diesel_derives 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62a27666098617d52c487a41f70de23d44a1dc1f3aa5877ceba2790fb1f1cab4"
++"checksum diesel_infer_schema 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bea70d0798a3d8489e1d5493bb2111a1ab2da434191b9e9605f167c01a20680"
++"checksum diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
++"checksum difference 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b3304d19798a8e067e48d8e69b2c37f0b5e9b4e462504ad9e27e9f3fce02bba8"
++"checksum dotenv 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d6f0e2bb24d163428d8031d3ebd2d2bd903ad933205a97d0f18c7c1aade380f3"
++"checksum env_logger 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "15abd780e45b3ea4f76b4e9a26ff4843258dd8a3eed2775a0e7368c2e7936c2f"
++"checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
++"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
++"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
++"checksum getrandom 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "fc344b02d3868feb131e8b5fe2b9b0a1cc42942679af493061fc13b853243872"
++"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
++"checksum infer_schema_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "90e390df38a4e5cb4337a76db5b736f239e08f3ab7e8e42a34548617f0113f64"
++"checksum infer_schema_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07b667b471ef99645989ceea451be288b6e669eeb8951d3f0fbd310677588ac6"
++"checksum ipnetwork 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d1d8b990621b5b0806fac3dbf71d1833a4c0a9e25702d10bd8b2c629c7ae01c"
++"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
++"checksum js-sys 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "1efc4f2a556c58e79c5500912e221dd826bec64ff4aabd8ce71ccef6da02d7d4"
++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)" = "34fcd2c08d2f832f376f4173a231990fa5aef4e99fb569867318a227ef4c06ba"
++"checksum libsqlite3-sys 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd6457c70bbff456d9fe49deaba35ec47c3e598bf8d7950ff0575ceb7a8a6ad1"
++"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
++"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
++"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
++"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
++"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
++"checksum migrations_internals 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8089920229070f914b9ce9b07ef60e175b2b9bc2d35c3edd8bf4433604e863b9"
++"checksum migrations_macros 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1664412abf7db2b8a6d58be42a38b099780cc542b5b350383b805d88932833fe"
++"checksum mysqlclient-sys 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7e9637d93448044078aaafea7419aed69d301b4a12bcc4aa0ae856eb169bef85"
++"checksum num-bigint 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "57450397855d951f1a41305e54851b1a7b8f5d2e349543a02a2effe25459f718"
++"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
++"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
++"checksum parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fa7767817701cce701d5585b9c4db3cdd02086398322c1d7e8bf5094a96a2ce7"
++"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++"checksum parking_lot_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cb88cb1cb3790baa6776844f968fea3be44956cf184fa1be5a03341f5491278c"
++"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
++"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
++"checksum pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c1d2cfa5a714db3b5f24f0915e74fcdf91d09d496ba61329705dda7774d2af"
++"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
++"checksum pq-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "6ac25eee5a0582f45a67e837e350d784e7003bd29a5f460796772061ca49ffda"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum proc-macro2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "175a40b9cf564ce9bf050654633dbf339978706b8ead1a907bb970b63185dd95"
++"checksum quickcheck 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02c2411d418cea2364325b18a205664f9ef8252e06b2e911db97c0b0d98b1406"
++"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum r2d2 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bc42ce75d9f4447fb2a04bbe1ed5d18dd949104572850ec19b164e274919f81b"
++"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
++"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
++"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
++"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c"
++"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
++"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_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
++"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
++"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
++"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
++"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
++"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 regex 0.1.80 (registry+https://github.com/rust-lang/crates.io-index)" = "4fd4ace6a8cf7860714a2c2280d6c1f7e6a413486c13298bbc86fd3da019402f"
++"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
++"checksum regex-syntax 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f9ec002c35e86791825ed294b50008eea9ddfc8def4420124fbc6b08db834957"
++"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
++"checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
++"checksum safemem 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d2b08423011dae9a5ca23f07cf57dac3857f5c885d352b76f6d95f4aea9434d0"
++"checksum scheduled-thread-pool 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bd07742e081ff6c077f5f6b283f12f32b9e7cc765b316160d66289b74546fbb3"
++"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "fec2851eb56d010dc9a21b89ca53ee75e6528bab60c11e89d38390904982da9f"
++"checksum serde_derive 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)" = "cb4dc18c61206b08dc98216c98faa0232f4337e1e1b8574551d5bad29ea1b425"
++"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
++"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum structopt 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "783cb22d520b177a3772e520d04a3c7970d51c3b647ba80739f99be01131b54f"
++"checksum structopt-derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "4da119c9a7a1eccb7c6de0c1eb3f7ed1c11138624d092b3687222aeed8f1375c"
++"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
++"checksum syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "66850e97125af79138385e9b88339cbcd037e3f28ceab8c5ad98e64f0f1f80bf"
++"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
++"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
++"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thread-id 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9539db560102d1cef46b8b78ce737ff0bb64e7e18d35b2a5688f7d097d0ff03"
++"checksum thread_local 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8576dbbfcaef9641452d5cf0df9b0e7eeab7694956dd33bb61515fb8f18cfdd5"
++"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
++"checksum ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa9b3b49edd3468c0e6565d85783f51af95212b6fa3986a5500954f00b460874"
++"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
++"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
++"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20"
++"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
++"checksum utf8-ranges 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1ca13c08c41c9c3e04224ed9ff80461d97e121589ff27c753a16cb10830ae0f"
++"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
++"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
++"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
++"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++"checksum wasi 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fd5442abcac6525a045cc8c795aedb60da7a2e5e89c7bf18a0d5357849bb23c7"
++"checksum wasm-bindgen 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "dcddca308b16cd93c2b67b126c688e5467e4ef2e28200dc7dfe4ae284f2faefc"
++"checksum wasm-bindgen-backend 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "f805d9328b5fc7e5c6399960fd1889271b9b58ae17bdb2417472156cc9fafdd0"
++"checksum wasm-bindgen-macro 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "3ff88201a482abfc63921621f6cb18eb1efd74f136b05e5841e7f8ca434539e9"
++"checksum wasm-bindgen-macro-support 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "6a433d89ecdb9f77d46fcf00c8cf9f3467b7de9954d8710c175f61e2e245bb0e"
++"checksum wasm-bindgen-shared 0.2.50 (registry+https://github.com/rust-lang/crates.io-index)" = "d41fc1bc3570cdf8d108c15e014045fd45a95bb5eb36605f96a90461fc34027d"
++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++"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/development/tools/diesel-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
new file mode 100644
index 000000000000..6a447dd57c92
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
@@ -0,0 +1,76 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, openssl, pkgconfig, Security
+, sqliteSupport ? true, sqlite
+, postgresqlSupport ? true, postgresql
+, mysqlSupport ? true, mysql, zlib, libiconv
+}:
+
+assert lib.assertMsg (sqliteSupport == true || postgresqlSupport == true || mysqlSupport == true)
+ "support for at least one database must be enabled";
+
+let
+ inherit (stdenv.lib) optional optionals optionalString;
+ features = ''
+ ${optionalString sqliteSupport "sqlite"} \
+ ${optionalString postgresqlSupport "postgres"} \
+ ${optionalString mysqlSupport "mysql"} \
+ '';
+in
+
+rustPlatform.buildRustPackage rec {
+ pname = "diesel-cli";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "diesel-rs";
+ repo = "diesel";
+ rev = "v${version}";
+ sha256 = "0wp4hvpl9cf8hw1jyz3z476k5blrh6srfpv36dw10bj126rz9pvb";
+ };
+
+ patches = [
+ # Allow warnings to fix many instances of `error: trait objects without an explicit `dyn` are deprecated`
+ #
+ # Remove this after https://github.com/diesel-rs/diesel/commit/9004d1c3fa12aaee84986bd3d893002491373f8c
+ # is in a release.
+ ./allow-warnings.patch
+ ];
+
+ cargoBuildFlags = [ "--no-default-features --features \"${features}\"" ];
+ cargoPatches = [ ./cargo-lock.patch ];
+ cargoSha256 = "1vbb7r0dpmq8363i040bkhf279pz51c59kcq9v5qr34hs49ish8g";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ]
+ ++ optional stdenv.isDarwin Security
+ ++ optional (stdenv.isDarwin && mysqlSupport) libiconv
+ ++ optional sqliteSupport sqlite
+ ++ optional postgresqlSupport postgresql
+ ++ optionals mysqlSupport [ mysql zlib ];
+
+ # We must `cd diesel_cli`, we cannot use `--package diesel_cli` to build
+ # because --features fails to apply to the package:
+ # https://github.com/rust-lang/cargo/issues/5015
+ # https://github.com/rust-lang/cargo/issues/4753
+ preBuild = "cd diesel_cli";
+ postBuild = "cd ..";
+
+ checkPhase = optionalString sqliteSupport ''
+ (cd diesel_cli && cargo check --features sqlite)
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/diesel --version
+ '';
+
+ # Fix the build with mariadb, which otherwise shows "error adding symbols:
+ # DSO missing from command line" errors for libz and libssl.
+ NIX_LDFLAGS = lib.optionalString mysqlSupport "-lz -lssl -lcrypto";
+
+ meta = with lib; {
+ description = "Database tool for working with Rust projects that use Diesel";
+ homepage = "https://github.com/diesel-rs/diesel/tree/master/diesel_cli";
+ license = with licenses; [ mit asl20 ];
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/update-cargo-lock.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/update-cargo-lock.sh
new file mode 100755
index 000000000000..bd2e033e6871
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/diesel-cli/update-cargo-lock.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# This updates cargo-lock.patch for the diesel version listed in default.nix.
+
+set -eu -o verbose
+
+here=$PWD
+version=$(cat default.nix | grep '^ version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+git clone -b "v$version" --depth=1 https://github.com/diesel-rs/diesel "$checkout"
+cd "$checkout"
+
+rm -f rust-toolchain
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/distgen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/distgen/default.nix
new file mode 100644
index 000000000000..dbf00ea8e05e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/distgen/default.nix
@@ -0,0 +1,32 @@
+{ lib, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "distgen";
+ version = "1.5";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "08f9rw5irgv0gw7jizk5f9csn0yhrdnb84k40px1zbypsylvr5c5";
+ };
+
+ checkInputs = with python3.pkgs; [
+ pytest
+ mock
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ distro
+ jinja2
+ six
+ pyyaml
+ ];
+
+ checkPhase = "make test-unit PYTHON=${python3.executable}";
+
+ meta = with lib; {
+ description = "Templating system/generator for distributions";
+ license = licenses.gpl2Plus;
+ homepage = "https://distgen.readthedocs.io/";
+ maintainers = with maintainers; [ bachp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dive/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dive/default.nix
new file mode 100644
index 000000000000..3cb050df0363
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dive/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoModule, fetchFromGitHub, pkg-config, btrfs-progs, gpgme, lvm2 }:
+
+buildGoModule rec {
+ pname = "dive";
+ version = "0.9.2";
+
+ src = fetchFromGitHub {
+ owner = "wagoodman";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1v69xbkjmyzm5g4wi9amjk65fs4qgxkqc0dvq55vqjigzrranp22";
+ };
+
+ vendorSha256 = "0219q9zjc0i6fbdngqh0wjpmq8wj5bjiz5dls0c1aam0lh4vwkhc";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs gpgme lvm2 ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with stdenv.lib; {
+ description = "A tool for exploring each layer in a docker image";
+ homepage = "https://github.com/wagoodman/dive";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marsam spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/doctl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/doctl/default.nix
new file mode 100644
index 000000000000..45795b67ea4a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/doctl/default.nix
@@ -0,0 +1,44 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "doctl";
+ version = "1.46.0";
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "cmd/doctl" ];
+
+ buildFlagsArray = let t = "github.com/digitalocean/doctl"; in ''
+ -ldflags=
+ -X ${t}.Major=${lib.versions.major version}
+ -X ${t}.Minor=${lib.versions.minor version}
+ -X ${t}.Patch=${lib.versions.patch version}
+ -X ${t}.Label=release
+ '';
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ export HOME=$(mktemp -d) # attempts to write to /homeless-shelter
+ for shell in bash fish zsh; do
+ $out/bin/doctl completion $shell > doctl.$shell
+ installShellCompletion doctl.$shell
+ done
+ '';
+
+ src = fetchFromGitHub {
+ owner = "digitalocean";
+ repo = "doctl";
+ rev = "v${version}";
+ sha256 = "1f9gw1qjannswx1vy64a5a2cfr8azsci241pk0xhrhk6aqpjzx1n";
+ };
+
+ meta = with lib; {
+ description = "A command line tool for DigitalOcean services";
+ homepage = "https://github.com/digitalocean/doctl";
+ license = licenses.asl20;
+ maintainers = [ maintainers.siddharthist ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/antora/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/antora/default.nix
new file mode 100644
index 000000000000..781fee2bb266
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/antora/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, nodePackages }:
+
+let
+ linkNodeDeps = ({ pkg, deps, name ? "" }:
+ let
+ targetModule = if name != "" then name else stdenv.lib.getName pkg;
+ in nodePackages.${pkg}.override (oldAttrs: {
+ postInstall = ''
+ mkdir -p $out/lib/node_modules/${targetModule}/node_modules
+ ${stdenv.lib.concatStringsSep "\n" (map (dep: ''
+ ln -s ${nodePackages.${dep}}/lib/node_modules/${stdenv.lib.getName dep} \
+ $out/lib/node_modules/${targetModule}/node_modules/${stdenv.lib.getName dep}
+ '') deps
+ )}
+ '';
+ })
+);
+in linkNodeDeps {
+ pkg = "@antora/cli";
+ name = "@antora/cli";
+ deps = [
+ "@antora/site-generator-default"
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
new file mode 100644
index 000000000000..772b654df935
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, cmake, fetchurl, python3, flex, bison, qt4, CoreServices, libiconv }:
+
+stdenv.mkDerivation rec {
+
+ name = "doxygen-1.8.19";
+
+ src = fetchurl {
+ urls = [
+ "mirror://sourceforge/doxygen/${name}.src.tar.gz" # faster, with https, etc.
+ "http://doxygen.nl/files/${name}.src.tar.gz"
+ ];
+ sha256 = "1lvqfw2yzba588c5ggl8yhw7aw4xkk44mrghsd9yqlajc48x25dc";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ python3
+ flex
+ bison
+ ];
+
+ buildInputs =
+ stdenv.lib.optional (qt4 != null) qt4
+ ++ stdenv.lib.optional stdenv.isSunOS libiconv
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices libiconv ];
+
+ cmakeFlags =
+ [ "-DICONV_INCLUDE_DIR=${libiconv}/include" ] ++
+ stdenv.lib.optional (qt4 != null) "-Dbuild_wizard=YES";
+
+ NIX_CFLAGS_COMPILE =
+ stdenv.lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.9";
+
+ enableParallelBuilding = true;
+ doCheck = false; # fails
+
+ meta = {
+ license = stdenv.lib.licenses.gpl2Plus;
+ homepage = "http://doxygen.nl/";
+ description = "Source code documentation generator tool";
+
+ longDescription = ''
+ Doxygen is a documentation system for C++, C, Java, Objective-C,
+ Python, IDL (CORBA and Microsoft flavors), Fortran, VHDL, PHP,
+ C\#, and to some extent D. It can generate an on-line
+ documentation browser (in HTML) and/or an off-line reference
+ manual (in LaTeX) from a set of documented source files.
+ '';
+
+ platforms = if qt4 != null then stdenv.lib.platforms.linux else stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
new file mode 100644
index 000000000000..54c37fa61837
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gnome-doc-utils/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, libxml2Python, libxslt, intltool, gnome3
+, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+ pname = "gnome-doc-utils";
+ version = "0.20.10";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb";
+ };
+
+ nativeBuildInputs = [ intltool pkgconfig libxslt.dev ];
+ buildInputs = [ libxslt ];
+
+ configureFlags = [ "--disable-scrollkeeper" ];
+
+ preBuild = ''
+ substituteInPlace xml2po/xml2po/Makefile --replace '-e "s+^#!.*python.*+#!$(PYTHON)+"' '-e "s\"^#!.*python.*\"#!$(PYTHON)\""'
+ '';
+
+ propagatedBuildInputs = [ libxml2Python ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ postFixup = ''
+ # Do not propagate Python
+ rm $out/nix-support/propagated-build-inputs
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Collection of documentation utilities for the GNOME project";
+ homepage = "https://gitlab.gnome.org/GNOME/gnome-doc-utils";
+ license = with licenses; [ gpl2Plus lgpl2Plus ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
new file mode 100644
index 000000000000..c93ee954ceab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, python3
+, docbook_xml_dtd_43
+, docbook_xsl
+, libxslt
+, gettext
+, gnome3
+, withDblatex ? false, dblatex
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "gtk-doc";
+ version = "1.32";
+
+ format = "other";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = pname;
+ rev = "GTK_DOC_${stdenv.lib.replaceStrings ["."] ["_"] version }";
+ sha256 = "14fihxj662gg4ln1ngff6s52zzkpbcc58qa0nxysxypnhp0h4ypk";
+ };
+
+ patches = [
+ passthru.respect_xml_catalog_files_var_patch
+ ];
+
+ outputDevdoc = "out";
+
+ nativeBuildInputs = [
+ pkg-config
+ gettext
+ meson
+ ninja
+ libxslt # for xsltproc
+ ];
+
+ buildInputs = [
+ docbook_xml_dtd_43
+ docbook_xsl
+ libxslt
+ ] ++ stdenv.lib.optionals withDblatex [
+ dblatex
+ ];
+
+ pythonPath = with python3.pkgs; [
+ pygments # Needed for https://gitlab.gnome.org/GNOME/gtk-doc/blob/GTK_DOC_1_32/meson.build#L42
+ (anytree.override { withGraphviz = false; })
+ lxml
+ ];
+
+ mesonFlags = [
+ "-Dtests=false"
+ "-Dyelp_manual=false"
+ ];
+
+ doCheck = false; # requires a lot of stuff
+ doInstallCheck = false; # fails
+
+ postFixup = ''
+ # Do not propagate Python
+ substituteInPlace $out/nix-support/propagated-build-inputs \
+ --replace "${python3}" ""
+ '';
+
+ # find: ‘...-gtk-doc-1.32/lib/python3.8/site-packages’: No such file or directory
+ # https://github.com/NixOS/nixpkgs/pull/90208#issuecomment-644051108
+ dontUsePythonRecompileBytecode = true;
+
+ passthru = {
+ # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
+ respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tools to extract documentation embedded in GTK and GNOME source code";
+ homepage = "https://www.gtk.org/gtk-doc";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub worldofpeace ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..95f6879a0069
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/gtk-doc/respect-xml-catalog-files-var.patch
@@ -0,0 +1,13 @@
+--- a/m4/gtkdoc_jh_check_xml_catalog.m4
++++ b/m4/gtkdoc_jh_check_xml_catalog.m4
+@@ -5,8 +5,8 @@
+ [
+ AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+ AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+- if $jh_found_xmlcatalog && \
+- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++ # empty argument forces libxml to use XML_CATALOG_FILES variable
++ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+ AC_MSG_RESULT([found])
+ ifelse([$3],,,[$3])
+ else
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
new file mode 100644
index 000000000000..5ab74a4b95ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "mdsh";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "zimbatm";
+ repo = "mdsh";
+ rev = "v${version}";
+ sha256 = "02xslf5ssmyklbfsif2d7yk5aaz08n5w0dqiid6v4vlr2mkqcpjl";
+ };
+
+ cargoSha256 = "118ykkqlf0x6gcgywx4pg3qawfhfr5q5f51gvrw9s302c1lmgk3g";
+
+ meta = with stdenv.lib; {
+ description = "Markdown shell pre-processor";
+ homepage = "https://github.com/zimbatm/mdsh";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mkdocs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mkdocs/default.nix
new file mode 100644
index 000000000000..8d4480945bda
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/documentation/mkdocs/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, python3, fetchFromGitHub }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "mkdocs";
+ version = "1.0.4";
+
+ src = fetchFromGitHub {
+ owner = "mkdocs";
+ repo = "mkdocs";
+ rev = version;
+ sha256 = "1x35vgiskgz4wwrvi4m1mri5wlphf15p90fr3rxsy5bf19v3s9hs";
+ };
+
+ checkInputs = [
+ nose nose-exclude mock
+ ];
+
+ NOSE_EXCLUDE_TESTS = lib.concatStringsSep ";" [
+ "mkdocs.tests.gh_deploy_tests.TestGitHubDeploy"
+ "mkdocs.tests.config.config_tests.ConfigTests"
+ "mkdocs.tests.config.config_options_tests.DirTest"
+ ];
+
+ checkPhase = "nosetests mkdocs";
+
+ propagatedBuildInputs = [
+ tornado
+ livereload
+ click
+ pyyaml
+ markdown
+ jinja2
+ backports_tempfile
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Project documentation with Markdown / static website generator";
+ longDescription = ''
+ MkDocs is a fast, simple and downright gorgeous static site generator that's
+ geared towards building project documentation. Documentation source files
+ are written in Markdown, and configured with a single YAML configuration file.
+
+ MkDocs can also be used to generate general-purpose Websites.
+ '';
+ homepage = "http://mkdocs.org/";
+ license = lib.licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.rkoe ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dot-http/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dot-http/default.nix
new file mode 100644
index 000000000000..1c81a4145d29
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dot-http/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "dot-http";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "bayne";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1s2q4kdldhb5gd14g2h6vzrbjgbbbs9zp2dgmna0rhk1h4qv0mml";
+ };
+
+ cargoSha256 = "0an3hskq1k2j4gdn8wvhfb9pqsc34ibs5bv7sjznkp5jma6fdr9w";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ libiconv Security
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Text-based scriptable HTTP client";
+ homepage = "https://github.com/bayne/dot-http";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ mredaelli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/drip/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/drip/default.nix
new file mode 100644
index 000000000000..b4edf8ec081b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/drip/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, jdk8, which, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "drip";
+ version = "0.2.4";
+
+ src = fetchFromGitHub {
+ repo = pname;
+ owner = "ninjudd";
+ rev = version;
+ sha256 = "1zl62wdwfak6z725asq5lcqb506la1aavj7ag78lvp155wyh8aq1";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildInputs = [ jdk8 ];
+
+ postPatch = ''
+ patchShebangs .
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir $out
+ cp ./* $out -r
+ wrapProgram $out/bin/drip \
+ --prefix PATH : "${which}/bin"
+ $out/bin/drip version
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A launcher for the Java Virtual Machine intended to be a drop-in replacement for the java command, only faster";
+ license = licenses.epl10;
+ homepage = "https://github.com/ninjudd/drip";
+ platforms = platforms.linux;
+ maintainers = [ maintainers.rybern ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/drm_info/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/drm_info/default.nix
new file mode 100644
index 000000000000..c052db92e0c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/drm_info/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub
+, libdrm, json_c, pciutils
+, meson, ninja, pkgconfig
+}:
+
+stdenv.mkDerivation rec {
+ pname = "drm_info";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "ascent12";
+ repo = "drm_info";
+ rev = "v${version}";
+ sha256 = "0s4zp8xz21zcpinbcwdvg48rf0xr7rs0dqri28q093vfmllsk36f";
+ };
+
+ nativeBuildInputs = [ meson ninja pkgconfig ];
+ buildInputs = [ libdrm json_c pciutils ];
+
+ meta = with stdenv.lib; {
+ description = "Small utility to dump info about DRM devices";
+ homepage = "https://github.com/ascent12/drm_info";
+ license = licenses.mit;
+ maintainers = with maintainers; [ tadeokondrak ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dt-schema/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dt-schema/default.nix
new file mode 100644
index 000000000000..776a3b06143a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dt-schema/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, git
+, ruamel_yaml
+, jsonschema
+, rfc3987
+, setuptools
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+ pname = "dtschema";
+ version = "2020.8.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "5c98202abb4977aac6a2995a7f4ed2f7e51739db6fd72861d29681f865c27c1b";
+ };
+
+ nativeBuildInputs = [ setuptools_scm git ];
+ propagatedBuildInputs = [
+ setuptools
+ ruamel_yaml
+ jsonschema
+ rfc3987
+ ];
+
+ meta = with lib; {
+ description = "Tooling for devicetree validation using YAML and jsonschema";
+ homepage = "https://github.com/devicetree-org/dt-schema/";
+ # all files have SPDX tags
+ license = with licenses; [ bsd2 gpl2 ];
+ maintainers = with maintainers; [ sorki ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/dtools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/dtools/default.nix
new file mode 100644
index 000000000000..5efa579ec5a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/dtools/default.nix
@@ -0,0 +1,61 @@
+{stdenv, lib, fetchFromGitHub, dmd, curl}:
+
+stdenv.mkDerivation rec {
+ pname = "dtools";
+ version = "2.085.1";
+
+ srcs = [
+ (fetchFromGitHub {
+ owner = "dlang";
+ repo = "dmd";
+ rev = "v${version}";
+ sha256 = "0ccidfcawrcwdpfjwjiln5xwr4ffp8i2hwx52p8zn3xmc5yxm660";
+ name = "dmd";
+ })
+ (fetchFromGitHub {
+ owner = "dlang";
+ repo = "tools";
+ rev = "v${version}";
+ sha256 = "1x85w4k2zqgv2bjbvhschxdc6kq8ygp89h499cy8rfqm6q23g0ws";
+ name = "dtools";
+ })
+ ];
+
+ sourceRoot = ".";
+
+ postUnpack = ''
+ mv dmd dtools
+ cd dtools
+
+ substituteInPlace posix.mak --replace "\$(DMD) \$(DFLAGS) -unittest -main -run rdmd.d" ""
+ '';
+
+ nativeBuildInputs = [ dmd ];
+ buildInputs = [ curl ];
+
+ makeCmd = ''
+ make -f posix.mak DMD_DIR=dmd DMD=${dmd.out}/bin/dmd CC=${stdenv.cc}/bin/cc
+ '';
+
+ buildPhase = ''
+ $makeCmd
+ '';
+
+ doCheck = true;
+
+ checkPhase = ''
+ $makeCmd test_rdmd
+ '';
+
+ installPhase = ''
+ $makeCmd INSTALL_DIR=$out install
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Ancillary tools for the D programming language compiler";
+ homepage = "https://github.com/dlang/tools";
+ license = lib.licenses.boost;
+ maintainers = with maintainers; [ ThomasMader ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/easyjson/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/easyjson/default.nix
new file mode 100644
index 000000000000..ef99bbd01c31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/easyjson/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "easyjson";
+ version = "unstable-2019-06-26";
+ goPackagePath = "github.com/mailru/easyjson";
+
+ src = fetchFromGitHub {
+ owner = "mailru";
+ repo = "easyjson";
+ rev = "b2ccc519800e761ac8000b95e5d57c80a897ff9e";
+ sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mailru/easyjson";
+ description = "Fast JSON serializer for golang";
+ license = licenses.mit;
+ maintainers = with maintainers; [ chiiruno ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
new file mode 100644
index 000000000000..44411d0db72c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
@@ -0,0 +1,119 @@
+{ buildEnv
+, fetchurl
+, fontconfig
+, freetype
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, jdk11
+, lib
+, libX11
+, libXrender
+, libXtst
+, makeDesktopItem
+, makeWrapper
+, shared-mime-info
+, stdenv
+, unzip
+, webkitgtk
+, zlib
+}:
+
+with lib;
+let
+ pVersion = "1.10.0.20200225";
+ pVersionTriple = splitVersion pVersion;
+ majorVersion = elemAt pVersionTriple 0;
+ minorVersion = elemAt pVersionTriple 1;
+ patchVersion = elemAt pVersionTriple 2;
+ baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
+ jdk = jdk11;
+in
+stdenv.mkDerivation rec {
+ pname = "eclipse-mat";
+ version = "${pVersion}";
+
+ src = fetchurl {
+ url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
+ sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "eclipse-mat";
+ exec = "eclipse-mat";
+ icon = "eclipse";
+ comment = "Eclipse Memory Analyzer";
+ desktopName = "Eclipse MAT";
+ genericName = "Java Memory Analyzer";
+ categories = "Development;";
+ };
+
+ unpackPhase = ''
+ unzip $src
+ '';
+
+ buildCommand = ''
+ mkdir -p $out
+ unzip $src
+ mv mat $out
+
+ # Patch binaries.
+ interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+ libCairo=$out/eclipse/libcairo-swt.so
+ patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
+ [ -f $libCairo ] && patchelf --set-rpath ${
+ stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]
+ } $libCairo
+
+ # Create wrapper script. Pass -configuration to store settings in ~/.eclipse-mat/<version>
+ makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
+ --prefix PATH : ${jdk}/bin \
+ --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk ])} \
+ --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+ --add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
+
+ # Create desktop item.
+ mkdir -p $out/share/applications
+ cp ${desktopItem}/share/applications/* $out/share/applications
+ mkdir -p $out/share/pixmaps
+ find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
+ mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
+ '';
+
+ buildInputs = [
+ fontconfig
+ freetype
+ glib
+ gsettings-desktop-schemas
+ gtk3
+ jdk
+ libX11
+ libXrender
+ libXtst
+ makeWrapper
+ zlib
+ unzip
+ shared-mime-info
+ webkitgtk
+ ];
+
+ dontBuild = true;
+ dontConfigure = true;
+
+ meta = with stdenv.lib; {
+ description = "Fast and feature-rich Java heap analyzer";
+ longDescription = ''
+ The Eclipse Memory Analyzer is a tool that helps you find memory
+ leaks and reduce memory consumption. Use the Memory Analyzer to
+ analyze productive heap dumps with hundreds of millions of
+ objects, quickly calculate the retained sizes of objects, see
+ who is preventing the Garbage Collector from collecting objects,
+ run a report to automatically extract leak suspects.
+ '';
+ homepage = "https://www.eclipse.org/mat";
+ license = licenses.epl20;
+ maintainers = [ maintainers.ktor ];
+ platforms = [ "x86_64-linux" ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile
new file mode 100644
index 000000000000..f860fe5075d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile
@@ -0,0 +1,4 @@
+source 'https://rubygems.org'
+
+gem 'fpm'
+gem 'ronn'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile.lock
new file mode 100644
index 000000000000..d0a51c0a0623
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/Gemfile.lock
@@ -0,0 +1,54 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ arr-pm (0.0.10)
+ cabin (> 0)
+ backports (3.14.0)
+ cabin (0.9.0)
+ childprocess (0.9.0)
+ ffi (~> 1.0, >= 1.0.11)
+ clamp (1.0.1)
+ dotenv (2.7.2)
+ ffi (1.10.0)
+ fpm (1.11.0)
+ arr-pm (~> 0.0.10)
+ backports (>= 2.6.2)
+ cabin (>= 0.6.0)
+ childprocess (= 0.9.0)
+ clamp (~> 1.0.0)
+ ffi
+ json (>= 1.7.7, < 2.0)
+ pleaserun (~> 0.0.29)
+ ruby-xz (~> 0.2.3)
+ stud
+ hpricot (0.8.6)
+ insist (1.0.0)
+ io-like (0.3.0)
+ json (1.8.6)
+ mustache (0.99.8)
+ pleaserun (0.0.30)
+ cabin (> 0)
+ clamp
+ dotenv
+ insist
+ mustache (= 0.99.8)
+ stud
+ rdiscount (2.2.0.1)
+ ronn (0.7.3)
+ hpricot (>= 0.8.2)
+ mustache (>= 0.7.0)
+ rdiscount (>= 1.5.8)
+ ruby-xz (0.2.3)
+ ffi (~> 1.9)
+ io-like (~> 0.3)
+ stud (0.0.23)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ fpm
+ ronn
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/default.nix
new file mode 100644
index 000000000000..05deb05ed7ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/default.nix
@@ -0,0 +1,44 @@
+{ lib, bundlerEnv, ruby, buildGoPackage, fetchFromGitHub }:
+let
+ # needed for manpage generation
+ gems = bundlerEnv {
+ name = "ejson-gems";
+ gemdir = ./.;
+ inherit ruby;
+ };
+in buildGoPackage rec {
+ pname = "ejson";
+ version = "1.2.1";
+ rev = "v${version}";
+
+ nativeBuildInputs = [ gems ];
+
+ goPackagePath = "github.com/Shopify/ejson";
+ subPackages = [ "cmd/ejson" ];
+
+ src = fetchFromGitHub {
+ owner = "Shopify";
+ repo = "ejson";
+ inherit rev;
+ sha256 = "09356kp059hbzmqpzlz4b3agg93yqqygh5l5ddbxcsaqx4qiwdr7";
+ };
+
+ # set HOME, otherwise bundler will insert stuff in the manpages
+ postBuild = ''
+ cd go/src/$goPackagePath
+ HOME=$PWD make man
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share
+ cp -r build/man $out/share
+ '';
+
+ meta = with lib; {
+ description = "A small library to manage encrypted secrets using asymmetric encryption";
+ license = licenses.mit;
+ homepage = "https://github.com/Shopify/ejson";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.manveru ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/gemset.nix
new file mode 100644
index 000000000000..70c61be984c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ejson/gemset.nix
@@ -0,0 +1,188 @@
+{
+ arr-pm = {
+ dependencies = ["cabin"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07yx1g1nh4zdy38i2id1xyp42fvj4vl6i196jn7szvjfm0jx98hg";
+ type = "gem";
+ };
+ version = "0.0.10";
+ };
+ backports = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17j5pf0b69bkn043wi4xd530ky53jbbnljr4bsjzlm4k8bzlknfn";
+ type = "gem";
+ };
+ version = "3.14.0";
+ };
+ cabin = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b3b8j3iqnagjfn1261b9ncaac9g44zrx1kcg81yg4z9i513kici";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ childprocess = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p";
+ type = "gem";
+ };
+ version = "0.9.0";
+ };
+ clamp = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jb6l4scp69xifhicb5sffdixqkw8wgkk9k2q57kh2y36x1px9az";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ dotenv = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13cis6bf06hmz744xrsl163p6gb78xcm8g8q4pcabsy5ywyv6kag";
+ type = "gem";
+ };
+ version = "2.7.2";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ fpm = {
+ dependencies = ["arr-pm" "backports" "cabin" "childprocess" "clamp" "ffi" "json" "pleaserun" "ruby-xz" "stud"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0khzsiqzswxpql6w2ws9dawb27zgv4nmgrjszydmm0xpv6h21jrm";
+ type = "gem";
+ };
+ version = "1.11.0";
+ };
+ hpricot = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
+ type = "gem";
+ };
+ version = "0.8.6";
+ };
+ insist = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bw3bdwns14mapbgb8cbjmr0amvwz8y72gyclq04xp43wpp5jrvg";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ io-like = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "04nn0s2wmgxij3k760h3r8m1dgih5dmd9h4v1nn085yi824i5z6k";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+ type = "gem";
+ };
+ version = "1.8.6";
+ };
+ mustache = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g5hplm0k06vwxwqzwn1mq5bd02yp0h3rym4zwzw26aqi7drcsl2";
+ type = "gem";
+ };
+ version = "0.99.8";
+ };
+ pleaserun = {
+ dependencies = ["cabin" "clamp" "dotenv" "insist" "mustache" "stud"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hgnrl67zkqaxmfkwbyscawj4wqjm7h8khpbj58s6iw54wp3408p";
+ type = "gem";
+ };
+ version = "0.0.30";
+ };
+ rdiscount = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3";
+ type = "gem";
+ };
+ version = "2.2.0.1";
+ };
+ ronn = {
+ dependencies = ["hpricot" "mustache" "rdiscount"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07plsxxfx5bxdk72ii9za6km0ziqlq8jh3bicr4774dalga6zpw2";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+ ruby-xz = {
+ dependencies = ["ffi" "io-like"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "11bgpvvk0098ghvlxr4i713jmi2izychalgikwvdwmpb452r3ndw";
+ type = "gem";
+ };
+ version = "0.2.3";
+ };
+ stud = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qpb57cbpm9rwgsygqxifca0zma87drnlacv49cqs2n5iyi6z8kb";
+ type = "gem";
+ };
+ version = "0.0.23";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/electron/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/default.nix
new file mode 100644
index 000000000000..c9df28e5cded
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core, libdrm, mesa }@args:
+
+let
+ mkElectron = import ./generic.nix args;
+in
+rec {
+
+ electron = electron_10;
+
+ electron_3 = mkElectron "3.1.13" {
+ x86_64-linux = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
+ x86_64-darwin = "1vvjm4jifzjqvbs2kjlwg1h9p2czr2b5imjr9hld1j8nyfrzb0dx";
+ i686-linux = "04i0rcp4ajp4nf4arcl5crcc7a85sf0ixqd8jx07k2b1irv4dc23";
+ armv7l-linux = "1pzs2cj12xw18jwab0mb8xhndwd95lbsj5ml5xdw2mb0ip5jsvsa";
+ aarch64-linux = "13pc7xn0dkb8i31vg9zplqcvb7r9r7q3inmr3419b5p9bl0687x8";
+ };
+
+ electron_4 = mkElectron "4.2.12" {
+ x86_64-linux = "72c5319c92baa7101bea3254a036c0cd3bcf257f4a03a0bb153668b7292ee2dd";
+ x86_64-darwin = "89b0e16bb9b7072ed7ed1906fccd08540acdd9f42dd8a29c97fa17d811b8c5e5";
+ i686-linux = "bf96b1736141737bb064e48bdb543302fd259de634b1790b7cf930525f47859f";
+ armv7l-linux = "2d970b3020627e5381fd4916dd8fa50ca9556202c118ab4cba09c293960689e9";
+ aarch64-linux = "938b7cc5f917247a120920df30374f86414b0c06f9f3dc7ab02be1cadc944e55";
+ };
+
+ electron_5 = mkElectron "5.0.13" {
+ x86_64-linux = "8ded43241c4b7a6f04f2ff21c75ae10e4e6db1794e8b1b4f7656c0ed21667f8f";
+ x86_64-darwin = "589834815fb9667b3c1c1aa6ccbd87d50e5660ecb430f6b475168b772b9857cd";
+ i686-linux = "ccf4a5ed226928a30bd3ea830913d99853abb089bd4a6299ffa9fa0daa8d026a";
+ armv7l-linux = "96ad83802bc61d87bb952027d49e5dd297f58e4493e66e393b26e51e09065add";
+ aarch64-linux = "01f0fd313b060fb28a1022d68fb224d415fa22986e2a8f4aded6424b65e35add";
+ };
+
+ electron_6 = mkElectron "6.1.12" {
+ x86_64-linux = "dc628216588a896e72991d46071d06ef11aed2cdeca18d11d472c29cfbf12349";
+ x86_64-darwin = "6c7244319fdfb90899a48ffd0f426e36dba7c3fc5e29b28a4d29fdca7fb924d3";
+ i686-linux = "4e61dc4aed1c1b933b233e02833948f3b17f81f3444f02e9108a78c0540159ab";
+ armv7l-linux = "06071b4dc59a6773ff604550ed9e7a7ae8722b5343cbb5d4b94942fe537211dc";
+ aarch64-linux = "4ae23b75be821044f7e5878fe8e56ab3109cbd403ecd88221effa6abf850260b";
+ };
+
+ electron_7 = mkElectron "7.3.3" {
+ x86_64-linux = "a947228a859149bec5bd937f9f3c03eb0aa4d78cfe4dfa9aead60d3646a357f9";
+ x86_64-darwin = "e081436abef52212065f560ea6add1c0cd13d287a1b3cc76b28d2762f7651a4e";
+ i686-linux = "5fb756900af43a9daa6c63ccd0ac4752f5a479b8c6ae576323fd925dbe5ecbf5";
+ armv7l-linux = "830678f6db27fa4852cf456d8b2828a3e4e3c63fe2bced6b358eae88d1063793";
+ aarch64-linux = "03d06120464c353068e2ac6c40f89eedffd6b5b3c4c96efdb406c96a6136a066";
+ };
+
+ electron_8 = mkElectron "8.5.1" {
+ x86_64-linux = "e58bf26ba52e43de77115b6e6844eba8a8cec2ac8aae500cf48fe862014202d9";
+ x86_64-darwin = "cf0d42ecde7ca374ddf1b440aaaf441e16a02890112fcbffc03f37f8ec3b1958";
+ i686-linux = "4c7ff6225b1ac4b710c454072d9fb8c04a66bb0353e7d6cffb89bcf6d4458d81";
+ armv7l-linux = "13afd8b2e36eb8d1582687e16fac5394d6d3b9734d73f94d0d6ef843ba14cec2";
+ aarch64-linux = "ff39e5e0e644cbf4ff1d29fc25e94b9eced7ea45d787d1b86fa4e50513336b7b";
+ };
+
+ electron_9 = mkElectron "9.3.0" {
+ x86_64-linux = "0c34fa1dbf7708bd4a3f08fde50eafb9903b1c467104dca3e3ced5e7f764b302";
+ x86_64-darwin = "25057470c2f3a1c40fa1c25086256041fa70419378fa3d41eeb805ebd3919b20";
+ i686-linux = "ea09d10e496450d2d7bb7a37cab7124cc5484117dd7d7d6c4106586ff675d1d5";
+ armv7l-linux = "a8b46d6c98546d605a02850c906408dc11104e8ee4366c3d8a956896fafdfcd3";
+ aarch64-linux = "791d898d02e45975657ed15f2d83af31d5688e7db0075a6e20021db3420eb320";
+ };
+
+ electron_10 = mkElectron "10.1.1" {
+ x86_64-linux = "4147e88bdbec6893bf9927f0d4f3dd090d26705f5b7f688223bc65253a8b0220";
+ x86_64-darwin = "5b6814ae1064cc337efcdb2ad01ab9daa003a6a1d6e05d79288ede0a3665b991";
+ i686-linux = "d29682b7ea44dcdca5e7265bd1e28046275295a9ac23982af3d216a7f47a7a57";
+ armv7l-linux = "341a2eacb0381c1f409b8e28cf2c0fe6f75a61410614baf80309f51dd4201a34";
+ aarch64-linux = "d5e5b069f3173ed89f4cca7e9723f28a5f7a720637b7addac02972c5db042b6c";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/electron/generic.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/generic.nix
new file mode 100644
index 000000000000..f24358676dd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/generic.nix
@@ -0,0 +1,86 @@
+{ stdenv, libXScrnSaver, makeWrapper, fetchurl, wrapGAppsHook, glib, gtk3, unzip, atomEnv, libuuid, at-spi2-atk, at-spi2-core, libdrm, mesa }:
+
+version: hashes:
+let
+ name = "electron-${version}";
+
+ meta = with stdenv.lib; {
+ description = "Cross platform desktop application shell";
+ homepage = "https://github.com/electron/electron";
+ license = licenses.mit;
+ maintainers = with maintainers; [ travisbhartwell manveru prusnak ];
+ platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
+ knownVulnerabilities = optional (versionOlder version "6.0.0") "Electron version ${version} is EOL";
+ };
+
+ fetcher = vers: tag: hash: fetchurl {
+ url = "https://github.com/electron/electron/releases/download/v${vers}/electron-v${vers}-${tag}.zip";
+ sha256 = hash;
+ };
+
+ tags = {
+ i686-linux = "linux-ia32";
+ x86_64-linux = "linux-x64";
+ armv7l-linux = "linux-armv7l";
+ aarch64-linux = "linux-arm64";
+ x86_64-darwin = "darwin-x64";
+ };
+
+ get = as: platform: as.${platform.system} or
+ "Unsupported system: ${platform.system}";
+
+ common = platform: {
+ inherit name version meta;
+ src = fetcher version (get tags platform) (get hashes platform);
+ };
+
+ electronLibPath = with stdenv.lib; makeLibraryPath ([ libuuid at-spi2-atk at-spi2-core ] ++ optionals (! versionOlder version "9.0.0") [ libdrm mesa ]);
+
+ linux = {
+ buildInputs = [ glib gtk3 ];
+
+ nativeBuildInputs = [
+ unzip
+ makeWrapper
+ wrapGAppsHook
+ ];
+
+ dontWrapGApps = true; # electron is in lib, we need to wrap it manually
+
+ dontUnpack = true;
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/lib/electron $out/bin
+ unzip -d $out/lib/electron $src
+ ln -s $out/lib/electron/electron $out/bin
+ '';
+
+ postFixup = ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${atomEnv.libPath}:${electronLibPath}:$out/lib/electron" \
+ $out/lib/electron/electron
+
+ wrapProgram $out/lib/electron/electron \
+ --prefix LD_PRELOAD : ${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}/libXss.so.1 \
+ "''${gappsWrapperArgs[@]}"
+ '';
+ };
+
+ darwin = {
+ buildInputs = [ unzip ];
+
+ buildCommand = ''
+ mkdir -p $out/Applications
+ unzip $src
+ mv Electron.app $out/Applications
+ mkdir -p $out/bin
+ ln -s $out/Applications/Electron.app/Contents/MacOS/Electron $out/bin/electron
+ '';
+ };
+in
+ stdenv.mkDerivation (
+ (common stdenv.hostPlatform) //
+ (if stdenv.isDarwin then darwin else linux)
+ )
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/electron/print-hashes.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/print-hashes.sh
new file mode 100755
index 000000000000..45656a8f7b2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/electron/print-hashes.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+set -eu -o pipefail
+
+if [[ $# -lt 1 ]]; then
+ echo "$0: version" >&2
+ exit 1
+fi
+
+
+VERSION=$1
+
+declare -A SYSTEMS HASHES
+SYSTEMS=(
+ [i686-linux]=linux-ia32
+ [x86_64-linux]=linux-x64
+ [armv7l-linux]=linux-armv7l
+ [aarch64-linux]=linux-arm64
+ [x86_64-darwin]=darwin-x64
+)
+
+hashfile="$(nix-prefetch-url --print-path "https://github.com/electron/electron/releases/download/v${VERSION}/SHASUMS256.txt" 2>/dev/null | tail -n1)"
+
+echo "Entry similar to the following goes in default.nix:"
+echo
+echo " electron_${VERSION%%.*} = mkElectron \"${VERSION}\" {"
+
+for S in "${!SYSTEMS[@]}"; do
+ hash="$(grep " *electron-v${VERSION}-${SYSTEMS[$S]}.zip$" "$hashfile"|cut -f1 -d' ')"
+ echo " $S = \"$hash\";"
+done
+
+echo " };"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/eliot-tree/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
new file mode 100644
index 000000000000..95108c21bb9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "eliot-tree";
+ version = "19.0.1";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "18gvijsm0vh3x83mv8dd80c3mpm80r7i111qsg4y7rj4i590phma";
+ };
+
+ checkInputs = with python3Packages; [
+ testtools
+ pytest
+ ];
+
+ propagatedBuildInputs = with python3Packages; [
+ colored
+ eliot
+ iso8601
+ jmespath
+ setuptools
+ toolz
+ ];
+
+ # Tests run eliot-tree in out/bin.
+ checkPhase = ''
+ export PATH=$out/bin:$PATH
+ pytest
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jonathanj/eliottree";
+ description = "Render Eliot logs as an ASCII tree";
+ license = licenses.mit;
+ maintainers = [ maintainers.dpausp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix
new file mode 100644
index 000000000000..f9d63cc86d8d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/cuter/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, autoreconfHook, which, writeText, makeWrapper, fetchFromGitHub, erlang
+, z3, python }:
+
+stdenv.mkDerivation rec {
+ pname = "cuter";
+ version = "0.1";
+
+ src = fetchFromGitHub {
+ owner = "aggelgian";
+ repo = "cuter";
+ rev = "v${version}";
+ sha256 = "1ax1pj6ji4w2mg3p0nh2lzmg3n9mgfxk4cf07pll51yrcfpfrnfv";
+ };
+
+ setupHook = writeText "setupHook.sh" ''
+ addToSearchPath ERL_LIBS "$1/lib/erlang/lib/"
+ '';
+
+ nativeBuildInputs = [ autoreconfHook makeWrapper which ];
+ buildInputs = [ python python.pkgs.setuptools z3.python erlang ];
+
+ buildFlags = [ "PWD=$(out)/lib/erlang/lib/cuter-${version}" "cuter_target" ];
+ configurePhase = ''
+ autoconf
+ ./configure --prefix $out
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/lib/erlang/lib/cuter-${version}"
+ mkdir -p "$out/bin"
+ cp -r * "$out/lib/erlang/lib/cuter-${version}"
+ cp cuter "$out/bin/cuter"
+ wrapProgram $out/bin/cuter \
+ --prefix PATH : "${python}/bin" \
+ --suffix PYTHONPATH : "${z3}/${python.sitePackages}" \
+ --suffix ERL_LIBS : "$out/lib/erlang/lib"
+ '';
+
+ meta = {
+ description = "A concolic testing tool for the Erlang functional programming language";
+ license = stdenv.lib.licenses.gpl3;
+ homepage = "https://github.com/aggelgian/cuter";
+ maintainers = with stdenv.lib.maintainers; [ ericbmerritt ];
+ platforms = with stdenv.lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix
new file mode 100644
index 000000000000..0f9d973e6773
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/erlang/relx-exe/default.nix
@@ -0,0 +1,19 @@
+{ fetchHex, fetchRebar3Deps, rebar3Relx }:
+
+rebar3Relx rec {
+ name = "relx-exe";
+ version = "3.32.1";
+ releaseType = "escript";
+
+ src = fetchHex {
+ pkg = "relx";
+ sha256 = "0693k8ac7hvpm9jd3ysbdn8bk97d68ini22p1fsqdsi9qv9f7nq7";
+ inherit version;
+ };
+
+ checkouts = fetchRebar3Deps {
+ inherit name version;
+ src = "${src}/rebar.lock";
+ sha256 = "0l7r3x7zwcz49013zv8z5v2i06p7wqkgzdyzrl8jk0hglscvhpf6";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/default.nix
new file mode 100644
index 000000000000..01dc924c811d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "errcheck";
+ version = "1.1.0";
+
+ goPackagePath = "github.com/kisielk/errcheck";
+ excludedPackages = "\\(testdata\\)";
+
+ src = fetchFromGitHub {
+ owner = "kisielk";
+ repo = "errcheck";
+ rev = "v${version}";
+ sha256 = "19vd4rxmqbk5lpiav3pf7df3yjlz0l0dwx9mn0gjq5f998iyhy6y";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "errcheck is a program for checking for unchecked errors in go programs";
+ homepage = "https://github.com/kisielk/errcheck";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/deps.nix
new file mode 100644
index 000000000000..8470c9e12aa6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/errcheck/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
+ sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fac/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fac/default.nix
new file mode 100644
index 000000000000..6a23f84f2366
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fac/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, git }:
+
+buildGoPackage rec {
+ pname = "fac";
+ version = "2.0.0";
+
+ goPackagePath = "github.com/mkchoi212/fac";
+
+ src = fetchFromGitHub {
+ owner = "mkchoi212";
+ repo = "fac";
+ rev = "v${version}";
+ sha256 = "054bbiw0slz9szy3ap2sh5dy97w3g7ms27rd3ww3i1zdhvnggwpc";
+ };
+
+ goDeps = ./deps.nix;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ wrapProgram $out/bin/fac \
+ --prefix PATH : ${git}/bin
+
+ # Install man page, not installed by default
+ install -D go/src/${goPackagePath}/assets/doc/fac.1 $out/share/man/man1/fac.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "CUI for fixing git conflicts";
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fac/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fac/deps.nix
new file mode 100644
index 000000000000..65335497e5ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fac/deps.nix
@@ -0,0 +1,66 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/alecthomas/chroma";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/chroma";
+ rev = "0c0b382eca61a71c1eb4cb4dea2bc78aa4939d96";
+ sha256 = "0chpzs542s366vv01bfhrajdrbhmrvc3gi8jhpw3xgz6wfkivcp4";
+ };
+ }
+ {
+ goPackagePath = "github.com/danwakefield/fnmatch";
+ fetch = {
+ type = "git";
+ url = "https://github.com/danwakefield/fnmatch";
+ rev = "cbb64ac3d964b81592e64f957ad53df015803288";
+ sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
+ };
+ }
+ {
+ goPackagePath = "github.com/dlclark/regexp2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dlclark/regexp2";
+ rev = "7632a260cbaf5e7594fc1544a503456ecd0827f1";
+ sha256 = "0vhp5r0ywv9p1c74fm8xzclnwx2mg9f0764b3id7a9nwh0plisx2";
+ };
+ }
+ {
+ goPackagePath = "github.com/jroimartin/gocui";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jroimartin/gocui";
+ rev = "c055c87ae801372cd74a0839b972db4f7697ae5f";
+ sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
+ sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+ };
+ }
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "5c94acc5e6eb520f1bcd183974e01171cc4c23b3";
+ sha256 = "1fi8imdgwvlsgifw2qfl3ww0lsrgkfsimkzz7bnrq41nar78s0fw";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-yaml/yaml";
+ rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+ sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fdroidserver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fdroidserver/default.nix
new file mode 100644
index 000000000000..2b96830b0022
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fdroidserver/default.nix
@@ -0,0 +1,58 @@
+{ docker
+, fetchFromGitLab
+, python
+, lib }:
+
+python.pkgs.buildPythonApplication rec {
+ version = "1.1.9";
+ pname = "fdroidserver";
+
+ src = fetchFromGitLab {
+ owner = "fdroid";
+ repo = "fdroidserver";
+ rev = version;
+ sha256 = "098dcg8jdi4q1prfjmd2lbhcyzb8fmmfhbxhid4kqx8vcv7r0iql";
+ };
+
+ patchPhase = ''
+ substituteInPlace fdroidserver/common.py --replace "FDROID_PATH = os.path.realpath(os.path.join(os.path.dirname(__file__), '..'))" "FDROID_PATH = '$out/bin'"
+ substituteInPlace setup.py --replace "pyasn1-modules == 0.2.1" "pyasn1-modules"
+ '';
+
+ preConfigure = ''
+ ${python.interpreter} setup.py compile_catalog
+ '';
+ postInstall = ''
+ install -m 0755 gradlew-fdroid $out/bin
+ '';
+
+ buildInputs = [ python.pkgs.Babel ];
+
+ propagatedBuildInputs = with python.pkgs; [
+ androguard
+ clint
+ defusedxml
+ docker
+ docker-py
+ GitPython
+ libcloud
+ mwclient
+ paramiko
+ pillow
+ pyasn1
+ pyasn1-modules
+ python-vagrant
+ pyyaml
+ qrcode
+ requests
+ ruamel_yaml
+ ];
+
+ meta = with lib; {
+ homepage = "https://f-droid.org";
+ description = "Server and tools for F-Droid, the Free Software repository system for Android";
+ license = licenses.agpl3;
+ maintainers = [ lib.maintainers.pmiddend ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
new file mode 100644
index 000000000000..7ff7af7d18e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+with lib;
+
+buildGoModule rec {
+ pname = "fcct";
+ version = "0.6.0";
+
+ src = fetchFromGitHub {
+ owner = "coreos";
+ repo = "fcct";
+ rev = "v${version}";
+ sha256 = "18hmnip1s0smp58q500p8dfbrmi4i3nsyq22ri5cs53wbvz3ih1l";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "internal" ];
+
+ buildFlagsArray = ''
+ -ldflags=-X github.com/coreos/fcct/internal/version.Raw=v${version}
+ '';
+
+ postInstall = ''
+ mv $out/bin/{internal,fcct}
+ '';
+
+ meta = {
+ description = "Translates Fedora CoreOS configs into Ignition configs";
+ license = licenses.asl20;
+ homepage = "https://github.com/coreos/fcct";
+ maintainers = with maintainers; [ elijahcaine ruuda ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/default.nix
new file mode 100644
index 000000000000..4fbecc2d58d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, buildPythonApplication, buildPythonPackage, isPy3k, fetchurl, rpkg, offtrac, urlgrabber, pyopenssl, python_fedora }:
+
+let
+ fedora_cert = buildPythonPackage rec {
+ name = "fedora-cert";
+ version = "0.6.0.2";
+ format = "other";
+
+ src = fetchurl {
+ url = "https://releases.pagure.org/fedora-packager/fedora-packager-${version}.tar.bz2";
+ sha256 = "02f22072wx1zg3rhyfw6gbxryzcbh66s92nb98mb9kdhxixv6p0z";
+ };
+ propagatedBuildInputs = [ python_fedora pyopenssl ];
+ doCheck = false;
+ };
+in buildPythonApplication rec {
+ pname = "fedpkg";
+ version = "1.29";
+
+ disabled = isPy3k;
+
+ src = fetchurl {
+ url = "https://releases.pagure.org/fedpkg/${pname}-${version}.tar.bz2";
+ sha256 = "1cpy5p1rp7w52ighz3ynvhyw04z86y8phq3n8563lj6ayr8pw631";
+ };
+ patches = [ ./fix-paths.patch ];
+ propagatedBuildInputs = [ rpkg offtrac urlgrabber fedora_cert ];
+
+ meta = with stdenv.lib; {
+ description = "Subclass of the rpkg project for dealing with rpm packaging";
+ homepage = "https://pagure.io/fedpkg";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/fix-paths.patch
new file mode 100644
index 000000000000..1831337a5851
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fedpkg/fix-paths.patch
@@ -0,0 +1,16 @@
+--- orig/setup.py
++++ new/setup.py
+@@ -27,10 +27,10 @@
+ 'bin/fedpkg',
+ 'bin/fedpkg-stage',
+ ],
+- data_files=[(bash_completion_dir(), ['conf/bash-completion/fedpkg.bash']),
+- ('/etc/rpkg', ['conf/etc/rpkg/fedpkg.conf',
++ data_files=[('share/bash-completion/completions', ['conf/bash-completion/fedpkg.bash']),
++ ('etc/rpkg', ['conf/etc/rpkg/fedpkg.conf',
+ 'conf/etc/rpkg/fedpkg-stage.conf']),
+- ('/usr/share/zsh/site-functions', ['conf/zsh-completion/_fedpkg']),
++ ('share/zsh/site-functions', ['conf/zsh-completion/_fedpkg']),
+ ],
+
+ tests_require=['nose', 'mock'],
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flamegraph/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/flamegraph/default.nix
new file mode 100644
index 000000000000..23ada99eac0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flamegraph/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, perl }:
+
+stdenv.mkDerivation rec {
+ pname = "FlameGraph";
+ version = "2019-02-16";
+
+ src = fetchFromGitHub {
+ owner = "brendangregg";
+ repo = pname;
+ rev = "1b1c6deede9c33c5134c920bdb7a44cc5528e9a7";
+ sha256 = "1flvkmv2gbb003d51myl7r0wyhyw1bk9p7v19xagb8xjj4ci947b";
+ };
+
+ buildInputs = [ perl ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ for x in $src/*.pl $src/*.awk $src/dev/*.pl $src/dev/*.d; do
+ cp $x $out/bin
+ done
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ license = with licenses; [ asl20 cddl gpl2Plus ];
+ homepage = "http://www.brendangregg.com/flamegraphs.html";
+ description = "Visualization for profiled code";
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
new file mode 100644
index 000000000000..79c8236a065d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
@@ -0,0 +1,155 @@
+{ stdenv
+, fetchurl
+, substituteAll
+, nixosTests
+
+, autoreconfHook
+, docbook_xml_dtd_412
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, docbook_xsl
+, gettext
+, libxml2
+, libxslt
+, pkgconfig
+, xmlto
+
+, acl
+, breezy
+, binutils
+, bzip2
+, coreutils
+, cpio
+, curl
+, elfutils
+, flatpak
+, gitMinimal
+, glib
+, glibcLocales
+, gnumake
+, gnupg
+, gnutar
+, json-glib
+, libcap
+, libdwarf
+, libsoup
+, libyaml
+, ostree
+, patch
+, python2
+, rpm
+, unzip
+}:
+
+let
+ installed_testdir = "${placeholder "installedTests"}/libexec/installed-tests/flatpak-builder";
+ installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
+in stdenv.mkDerivation rec {
+ pname = "flatpak-builder";
+ version = "1.0.11";
+
+ outputs = [ "out" "doc" "man" "installedTests" ];
+
+ src = fetchurl {
+ url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
+ sha256 = "EYNLdrvSs8S/GCYy0jGsnP1+C988y1j7WzcLfczM1Ew=";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ docbook_xml_dtd_412
+ docbook_xml_dtd_42
+ docbook_xml_dtd_43
+ docbook_xsl
+ gettext
+ libxml2
+ libxslt
+ pkgconfig
+ xmlto
+ ];
+
+ buildInputs = [
+ acl
+ bzip2
+ curl
+ elfutils
+ flatpak
+ glib
+ json-glib
+ libcap
+ libdwarf
+ libsoup
+ libxml2
+ libyaml
+ ostree
+ ];
+
+ patches = [
+ # patch taken from gtk_doc
+ ./respect-xml-catalog-files-var.patch
+
+ # Hardcode paths
+ (substituteAll {
+ src = ./fix-paths.patch;
+ brz = "${breezy}/bin/brz";
+ cp = "${coreutils}/bin/cp";
+ patch = "${patch}/bin/patch";
+ tar = "${gnutar}/bin/tar";
+ unzip = "${unzip}/bin/unzip";
+ rpm2cpio = "${rpm}/bin/rpm2cpio";
+ cpio = "${cpio}/bin/cpio";
+ git = "${gitMinimal}/bin/git";
+ rofilesfuse = "${ostree}/bin/rofiles-fuse";
+ strip = "${binutils}/bin/strip";
+ eustrip = "${elfutils}/bin/eu-strip";
+ euelfcompress = "${elfutils}/bin/eu-elfcompress";
+ })
+
+ # The test scripts in Flatpak repo were updated so we are basing
+ # this on our patch for Flatpak 0.99.
+ (substituteAll {
+ src = ./fix-test-paths.patch;
+ inherit glibcLocales python2;
+ })
+ ];
+
+ configureFlags = [
+ "--enable-installed-tests"
+ ];
+
+ makeFlags = [
+ "installed_testdir=${installed_testdir}"
+ "installed_test_metadir=${installed_test_metadir}"
+ ];
+
+ # Some scripts used by tests need to use shebangs that are available in Flatpak runtimes.
+ dontPatchShebangs = true;
+
+ # Installed tests
+ postFixup = ''
+ for file in ${installed_testdir}/{test-builder.sh,test-builder-python.sh}; do
+ patchShebangs $file
+ done
+ '';
+
+ passthru = {
+ installedTestsDependencies = [
+ gnupg
+ ostree
+ python2
+ gnumake
+ ];
+
+ tests = {
+ installedTests = nixosTests.installed-tests.flatpak-builder;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tool to build flatpaks from source";
+ homepage = "https://github.com/flatpak/flatpak-builder";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
new file mode 100644
index 000000000000..c0df2c6cbe7e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -0,0 +1,151 @@
+diff --git a/src/builder-context.c b/src/builder-context.c
+index dde12790..3a379297 100644
+--- a/src/builder-context.c
++++ b/src/builder-context.c
+@@ -256,7 +256,7 @@ builder_context_init (BuilderContext *self)
+ g_autofree char *path = NULL;
+
+ self->rofiles_file_lock = init;
+- path = g_find_program_in_path ("rofiles-fuse");
++ path = g_find_program_in_path ("@rofilesfuse@");
+ self->have_rofiles = path != NULL;
+ }
+
+@@ -800,7 +800,7 @@ builder_context_enable_rofiles (BuilderContext *self,
+ g_autoptr(GFile) rofiles_base = NULL;
+ g_autoptr(GFile) rofiles_dir = NULL;
+ g_autofree char *tmpdir_name = NULL;
+- char *argv[] = { "rofiles-fuse",
++ char *argv[] = { "@rofilesfuse@",
+ "-o",
+ "kernel_cache,entry_timeout=60,attr_timeout=60,splice_write,splice_move",
+ (char *)flatpak_file_get_path_cached (self->app_dir),
+diff --git a/src/builder-git.c b/src/builder-git.c
+index ef517adb..6ab095f0 100644
+--- a/src/builder-git.c
++++ b/src/builder-git.c
+@@ -44,7 +44,7 @@ git (GFile *dir,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, output, flags, error, "git", ap);
++ res = flatpak_spawn (dir, output, flags, error, "@git@", ap);
+ va_end (ap);
+
+ return res;
+@@ -58,7 +58,7 @@ cp (GError **error,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "cp", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@cp@", ap);
+ va_end (ap);
+
+ return res;
+diff --git a/src/builder-source-archive.c b/src/builder-source-archive.c
+index 3c694e57..0de62318 100644
+--- a/src/builder-source-archive.c
++++ b/src/builder-source-archive.c
+@@ -443,7 +443,7 @@ tar (GFile *dir,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, NULL, 0, error, "tar", ap);
++ res = flatpak_spawn (dir, NULL, 0, error, "@tar@", ap);
+ va_end (ap);
+
+ return res;
+@@ -458,7 +458,7 @@ unzip (GFile *dir,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, NULL, 0, error, "unzip", ap);
++ res = flatpak_spawn (dir, NULL, 0, error, "@unzip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -483,7 +483,7 @@ unrpm (GFile *dir,
+ GError **error)
+ {
+ gboolean res;
+- const gchar *argv[] = { "sh", "-c", "rpm2cpio \"$1\" | cpio -i -d",
++ const gchar *argv[] = { "sh", "-c", "@rpm2cpio@ \"$1\" | @cpio@ -i -d",
+ "sh", /* shell's $0 */
+ rpm_path, /* shell's $1 */
+ NULL };
+@@ -631,7 +631,7 @@ git (GFile *dir,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (dir, NULL, 0, error, "git", ap);
++ res = flatpak_spawn (dir, NULL, 0, error, "@git@", ap);
+ va_end (ap);
+
+ return res;
+diff --git a/src/builder-source-bzr.c b/src/builder-source-bzr.c
+index ceeec94a..8abe6f53 100644
+--- a/src/builder-source-bzr.c
++++ b/src/builder-source-bzr.c
+@@ -124,7 +124,7 @@ bzr (GFile *dir,
+ gboolean res;
+ va_list ap;
+
+- brz = g_find_program_in_path ("brz");
++ brz = g_find_program_in_path ("@brz@");
+
+ va_start (ap, error);
+ res = flatpak_spawn (dir, output, 0, error, brz ? brz : "bzr", ap);
+diff --git a/src/builder-source-patch.c b/src/builder-source-patch.c
+index 8721e1e4..d7f4d840 100644
+--- a/src/builder-source-patch.c
++++ b/src/builder-source-patch.c
+@@ -247,15 +247,15 @@ patch (GFile *dir,
+
+ args = g_ptr_array_new ();
+ if (use_git) {
+- g_ptr_array_add (args, "git");
++ g_ptr_array_add (args, "@git@");
+ g_ptr_array_add (args, "apply");
+ g_ptr_array_add (args, "-v");
+ } else if (use_git_am) {
+- g_ptr_array_add (args, "git");
++ g_ptr_array_add (args, "@git@");
+ g_ptr_array_add (args, "am");
+ g_ptr_array_add (args, "--keep-cr");
+ } else {
+- g_ptr_array_add (args, "patch");
++ g_ptr_array_add (args, "@patch@");
+ }
+ for (i = 0; extra_options != NULL && extra_options[i] != NULL; i++)
+ g_ptr_array_add (args, (gchar *) extra_options[i]);
+diff --git a/src/builder-utils.c b/src/builder-utils.c
+index f1c06db5..2e3347c5 100644
+--- a/src/builder-utils.c
++++ b/src/builder-utils.c
+@@ -149,7 +149,7 @@ strip (GError **error,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "strip", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@strip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -163,7 +163,7 @@ eu_strip (GError **error,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "eu-strip", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@eustrip@", ap);
+ va_end (ap);
+
+ return res;
+@@ -177,7 +177,7 @@ eu_elfcompress (GError **error,
+ va_list ap;
+
+ va_start (ap, error);
+- res = flatpak_spawn (NULL, NULL, 0, error, "eu-elfcompress", ap);
++ res = flatpak_spawn (NULL, NULL, 0, error, "@euelfcompress@", ap);
+ va_end (ap);
+
+ return res;
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-paths.patch
new file mode 100644
index 000000000000..96212a30fcf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/fix-test-paths.patch
@@ -0,0 +1,111 @@
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -301,7 +301,7 @@
+ }
+
+ skip_without_python2 () {
+- if ! test -f /usr/bin/python2 || ! /usr/bin/python2 -c "import sys; sys.exit(0 if sys.version_info >= (2, 7) else 1)" ; then
++ if ! test -f @python2@/bin/python2 || ! @python2@/bin/python2 -c "import sys; sys.exit(0 if sys.version_info >= (2, 7) else 1)" ; then
+ echo "1..0 # SKIP this test requires /usr/bin/python2 (2.7) support"
+ exit 0
+ fi
+--- a/tests/make-test-runtime.sh
++++ b/tests/make-test-runtime.sh
+@@ -26,6 +26,7 @@
+ PATH="$PATH:/usr/sbin:/sbin"
+
+ # Add bash and dependencies
++mkdir -p ${DIR}/nix/store
+ mkdir -p ${DIR}/usr/bin
+ mkdir -p ${DIR}/usr/lib
+ ln -s ../lib ${DIR}/usr/lib64
+@@ -35,73 +36,28 @@
+ else
+ cp `which ldconfig` ${DIR}/usr/bin
+ fi
+-LIBS=`mktemp`
+-BINS=`mktemp`
+-
+-add_bin() {
+- local f=$1
+- shift
+-
+- if grep -qFe "${f}" $BINS; then
+- # Already handled
+- return 0
+- fi
+-
+- echo $f >> $BINS
+-
+- # Add library dependencies
+- (ldd "${f}" | sed "s/.* => //" | awk '{ print $1}' | grep ^/ | sort -u -o $LIBS $LIBS -) || true
+-
+- local shebang=$(sed -n '1s/^#!\([^ ]*\).*/\1/p' "${f}")
+- if [ x$shebang != x ]; then
+- add_bin "$shebang"
+- fi
+-}
+
+ for i in $@; do
+- I=`which $i`
+- add_bin $I
+- if test $i == python2; then
+- mkdir -p ${DIR}/usr/lib/python2.7/lib-dynload
+- # This is a hardcoded minimal set of modules we need in the current tests.
+- # Pretty hacky stuff. Add modules as needed.
+- PYDIR=/usr/lib/python2.7
+- if test -d /usr/lib64/python2.7; then PYDIR=/usr/lib64/python2.7; fi
+- for py in site os stat posixpath genericpath warnings \
+- linecache types UserDict abc _abcoll \
+- _weakrefset copy_reg traceback sysconfig \
+- re sre_compile sre_parse sre_constants \
+- _sysconfigdata ; do
+- cp ${PYDIR}/$py.py ${DIR}/usr/lib/python2.7
+- done
+- # These might not exist, depending how Python was configured; and the
+- # part after ${so} might be "module" or ".x86_64-linux-gnu" or
+- # something else
+- for so in _locale strop ; do
+- cp ${PYDIR}/lib-dynload/${so}*.so ${DIR}/usr/lib/python2.7/lib-dynload || :
+- done
+- for plat in $( cd ${PYDIR} && echo plat-* ); do
+- test -e ${PYDIR}/${plat} || continue
+- mkdir -p ${DIR}/usr/lib/python2.7/${plat}
+- cp ${PYDIR}/${plat}/*.py ${DIR}/usr/lib/python2.7/${plat}/
+- done
+- fi
+-done
+-for i in `cat $BINS`; do
+- echo Adding binary $i 1>&2
+- cp "$i" ${DIR}/usr/bin/
+-done
+-for i in `cat $LIBS`; do
+- echo Adding library $i 1>&2
+- cp "$i" ${DIR}/usr/lib/
++ I=$(readlink -f $(which $i))
++ requisites=$(nix-store --query --requisites "$I")
++ for r in $requisites; do
++ # a single store item can be needed by multiple paths, no need to copy it again
++ if [ ! -e ${DIR}/$r ]; then
++ cp -r $r ${DIR}/$r
++ fi
++ done
++ ln -s $I ${DIR}/usr/bin/$i
+ done
+ ln -s bash ${DIR}/usr/bin/sh
+
+-# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
+-# the real en_US locale is often not available, because its in the
+-# local archive.
++mv ${DIR}/nix/store ${DIR}/usr/store # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
++chmod -R u+w ${DIR} # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
++find ${DIR} -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
++find ${DIR} -type l | xargs -I '{}' sh -c 'tg="$(readlink "$1")"; newtg="${tg#/nix/store/}"; if [ "$tg" != "$newtg" ]; then ln -fs "/usr/store/$newtg" "$1"; fi' -- '{}' # replace symlink targets
++
++# We copy the whole locale archive because we do not have C.UTF8 locale
+ mkdir -p ${DIR}/usr/lib/locale/
+-cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
++cp @glibcLocales@/lib/locale/locale-archive ${DIR}/usr/lib/locale/locale-archive
+
+ if [ x$COLLECTION_ID != x ]; then
+ collection_args=--collection-id=${COLLECTION_ID}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch
new file mode 100644
index 000000000000..0e259aebd8a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flatpak-builder/respect-xml-catalog-files-var.patch
@@ -0,0 +1,13 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -40,8 +40,8 @@
+ [
+ AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
+ AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
+- if $jh_found_xmlcatalog && \
+- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
++ # empty argument forces libxml to use XML_CATALOG_FILES variable
++ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
+ AC_MSG_RESULT([found])
+ ifelse([$3],,,[$3
+ ])dnl
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flock/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/flock/default.nix
new file mode 100644
index 000000000000..a6ba410ec710
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flock/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, ronn }:
+
+stdenv.mkDerivation rec {
+ pname = "flock";
+ version = "0.2.3";
+
+ src = fetchFromGitHub {
+ owner = "discoteq";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1vdq22zhdfi7wwndsd6s7fwmz02fsn0x04d7asq4hslk7bjxjjzn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ ronn ];
+
+ meta = with lib; {
+ description = "Cross-platform version of flock(1)";
+ maintainers = [ maintainers.matthewbauer ];
+ platforms = platforms.all;
+ license = licenses.isc;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flootty/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/flootty/default.nix
new file mode 100644
index 000000000000..1baddb52259c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flootty/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "Flootty";
+ version = "3.2.2";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "0gfl143ly81pmmrcml91yr0ypvwrs5q4s1sfdc0l2qkqpy233ih7";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A collaborative terminal. In practice, it's similar to a shared screen or tmux session";
+ homepage = "https://floobits.com/help/flootty";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ sellout enzime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/flyway/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/flyway/default.nix
new file mode 100644
index 000000000000..c89b7acc51d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/flyway/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, jre_headless, makeWrapper }:
+ let
+ version = "6.5.5";
+ in
+ stdenv.mkDerivation {
+ pname = "flyway";
+ inherit version;
+ src = fetchurl {
+ url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
+ sha256 = "0g40lgrm9cslkdr4yn0h737djdr9fdyrc4hkq7wsrj0wx6d819dn";
+ };
+ nativeBuildInputs = [ makeWrapper ];
+ dontBuild = true;
+ dontStrip = true;
+ installPhase = ''
+ mkdir -p $out/bin $out/share/flyway
+ cp -r sql jars drivers conf $out/share/flyway
+ install -Dt $out/share/flyway/lib lib/community/*.jar lib/*.jar
+ makeWrapper "${jre_headless}/bin/java" $out/bin/flyway \
+ --add-flags "-Djava.security.egd=file:/dev/../dev/urandom" \
+ --add-flags "-classpath '$out/share/flyway/lib/*:$out/share/flyway/drivers/*'" \
+ --add-flags "org.flywaydb.commandline.Main" \
+ --add-flags "-jarDirs='$out/share/flyway/jars'"
+ '';
+ meta = with stdenv.lib; {
+ description = "Evolve your Database Schema easily and reliably across all your instances";
+ longDescription = ''
+ The Flyway command-line tool is a standalone Flyway distribution.
+ It is primarily meant for users who wish to migrate their database from the command-line
+ without having to integrate Flyway into their applications nor having to install a build tool.
+
+ This package is only the Community Edition of the Flyway command-line tool.
+ '';
+ homepage = "https://flywaydb.org/";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.cmcdragonkai ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fmbt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fmbt/default.nix
new file mode 100644
index 000000000000..71365c01bfdd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fmbt/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, python, autoreconfHook, pkgconfig, makeWrapper
+, flex
+, gettext, libedit, glib, imagemagick, libxml2, boost, gnuplot, graphviz
+, tesseract, gts, libXtst
+}:
+stdenv.mkDerivation rec {
+ version = "0.42";
+ pname = "fMBT";
+
+ src = fetchFromGitHub {
+ owner = "intel";
+ repo = "fMBT";
+ rev = "v${version}";
+ sha256 = "1jb9nb2mipc5cg99a80dny4m06vz2zral0q30fv75rz2cb6ja4zp";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig flex makeWrapper
+ python.pkgs.wrapPython ];
+
+ buildInputs = [ python gettext libedit glib imagemagick libxml2 boost
+ gnuplot graphviz tesseract gts
+ ];
+
+ propagatedBuildInputs = with python.pkgs; [
+ pyside pydbus pexpect pysideShiboken
+ ];
+
+ preBuild = ''
+ export PYTHONPATH="$PYTHONPATH:$out/lib/python${python.pythonVersion}/site-packages"
+ export PATH="$PATH:$out/bin"
+ export LD_LIBRARY_PATH="${stdenv.lib.makeLibraryPath [libXtst]}"
+ '';
+
+ postInstall = ''
+ echo -e '#! ${stdenv.shell}\npython "$@"' > "$out/bin/fmbt-python"
+ chmod a+x "$out/bin/fmbt-python"
+ patchShebangs "$out/bin"
+ for i in "$out"/bin/*; do
+ wrapProgram "$i" --suffix "PATH" ":" "$PATH" \
+ --suffix "PYTHONPATH" ":" "$PYTHONPATH" \
+ --suffix "LD_LIBRARY_PATH" ":" "$LD_LIBRARY_PATH"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Free Model-Based Testing tool";
+ homepage = "https://github.com/intel/fMBT";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ raskin ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix
new file mode 100644
index 000000000000..077dc8b87f99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/fusee-launcher/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, python3Packages
+, python3
+, fetchFromGitHub
+, pkgsCross
+, makeWrapper
+} :
+
+stdenv.mkDerivation {
+ pname = "fusee-launcher";
+ version = "unstable-2018-07-14";
+
+ src = fetchFromGitHub {
+ owner = "Cease-and-DeSwitch";
+ repo = "fusee-launcher";
+ rev = "265e8f3e1987751ec41db6f1946d132b296aba43";
+ sha256 = "1pqkgw5bk0xcz9x7pc1f0r0b9nsc8jnnvcs1315d8ml8mx23fshm";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share
+ cp fusee-launcher.py $out/bin/fusee-launcher
+ cp intermezzo.bin $out/share/intermezzo.bin
+
+ # Wrap with path to intermezzo.bin relocator binary in /share
+ wrapProgram $out/bin/fusee-launcher \
+ --add-flags "--relocator $out/share/intermezzo.bin" \
+ --prefix PYTHONPATH : "$PYTHONPATH:$(toPythonPath $out)"
+ '';
+
+ nativeBuildInputs = [ pkgsCross.arm-embedded.buildPackages.gcc makeWrapper python3Packages.wrapPython ];
+ buildInputs = [ python3 python3Packages.pyusb ];
+ pythonPath = with python3Packages; [ pyusb ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Cease-and-DeSwitch/fusee-launcher";
+ description = "Work-in-progress launcher for one of the Tegra X1 bootROM exploits";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pneumaticat ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/galen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/galen/default.nix
new file mode 100644
index 000000000000..89d6b700018d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/galen/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, jre8, unzip }:
+
+stdenv.mkDerivation rec {
+ pname = "galen";
+ version = "2.4.4";
+
+ inherit jre8;
+
+ src = fetchurl {
+ url = "https://github.com/galenframework/galen/releases/download/galen-${version}/galen-bin-${version}.zip";
+ sha256 = "13dq8cf0yy24vym6z7p8hb0mybgpcl4j5crsaq8a6pjfxz6d17mq";
+ };
+
+ buildInputs = [ unzip ];
+
+ buildPhase = ''
+ mkdir -p $out/bin
+ '';
+
+ installPhase = ''
+ cat galen | sed -e "s,java,$jre8/bin/java," > $out/bin/galen
+ chmod +x $out/bin/galen
+ cp galen.jar $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://galenframework.com";
+ description = "Automated layout testing for websites";
+ license = licenses.asl20;
+ maintainers = [ ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gamecube-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gamecube-tools/default.nix
new file mode 100644
index 000000000000..7c31f691b4e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gamecube-tools/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook
+, freeimage, libGL }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.2";
+ pname = "gamecube-tools";
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ freeimage libGL ];
+
+ src = fetchFromGitHub {
+ owner = "devkitPro";
+ repo = "gamecube-tools";
+ rev = "v${version}";
+ sha256 = "0zvpkzqvl8iv4ndzhkjkmrzpampyzgb91spv0h2x2arl8zy4z7ca";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Tools for gamecube/wii projects";
+ homepage = "https://github.com/devkitPro/gamecube-tools/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ tomsmeets ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gauge/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gauge/default.nix
new file mode 100644
index 000000000000..8755466ec8ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gauge/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gauge";
+ version = "1.1.3";
+
+ goPackagePath = "github.com/getgauge/gauge";
+ excludedPackages = ''\(build\|man\)'';
+
+ src = fetchFromGitHub {
+ owner = "getgauge";
+ repo = "gauge";
+ rev = "v${version}";
+ sha256 = "11qllg1alv9khkgjarpzlsqg5ygisjprg79n2jqhv1w6izx88cqc";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Light weight cross-platform test automation";
+ homepage = "https://gauge.org";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.vdemeester ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/default.nix
new file mode 100644
index 000000000000..2f26a1c35f85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gdm";
+ version = "1.4";
+
+ goPackagePath = "github.com/sparrc/gdm";
+
+ src = fetchFromGitHub {
+ owner = "sparrc";
+ repo = "gdm";
+ rev = version;
+ sha256 = "0kpqmbg144qcvd8k88j9yx9lrld85ray2viw161xajafk16plvld";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Minimalist dependency manager for Go written in Go";
+ homepage = "https://github.com/sparrc/gdm";
+ license = licenses.unlicense;
+ maintainers = [ maintainers.mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/deps.nix
new file mode 100644
index 000000000000..62a3df65e3aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gdm/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by go2nix.
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "0d047c8d5a8c3a1c89d9d78511f4ed7aef49ea0c";
+ sha256 = "0ahyxvqy25zpyppmrb7vsad332gmq2cdi7hb0si6ni0cmrlqcfwr";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch
new file mode 100644
index 000000000000..a283d0c382c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/cargo-lock.patch
@@ -0,0 +1,1846 @@
+diff --git a/testing/geckodriver/Cargo.lock b/testing/geckodriver/Cargo.lock
+new file mode 100644
+index 0000000..4430666
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1840 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "adler32"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.0 (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 = "autocfg"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.42"
++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.50 (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.10"
++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.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-buffer"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "byte-tools"
++version = "0.3.1"
++source = "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 = "bytes"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "c2-chacha"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++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 = "chrono"
++version = "0.4.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (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 = [
++ "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)",
++ "term_size 0.3.1 (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.7 (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.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cookie"
++version = "0.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crc32fast"
++version = "1.2.0"
++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 = "crossbeam-deque"
++version = "0.7.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-epoch"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-queue"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (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 = "crossbeam-utils"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "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 = "digest"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "generic-array 0.12.3 (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 = "dtoa"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "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.42 (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.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fake-simd"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "flate2"
++version = "1.0.13"
++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)",
++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fnv"
++version = "1.0.6"
++source = "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 = "fuchsia-zircon"
++version = "0.3.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)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "futures"
++version = "0.1.29"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "futures-cpupool"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "geckodriver"
++version = "0.26.0"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "marionette 0.1.0",
++ "mozdevice 0.1.0",
++ "mozprofile 0.6.0",
++ "mozrunner 0.10.0",
++ "mozversion 0.2.1",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "webdriver 0.40.2",
++ "zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "generic-array"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.14"
++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)",
++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "h2"
++version = "0.1.26"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "headers"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "headers-core 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "headers-core"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "http"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "http-body"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "httparse"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "humantime"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "hyper"
++version = "0.12.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "idna"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "indexmap"
++version = "1.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (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 = "line-wrap"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "linked-hash-map"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lock_api"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "scopeguard 1.0.0 (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 = "marionette"
++version = "0.1.0"
++dependencies = [
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_repr 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "matches"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "maybe-uninit"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memchr"
++version = "2.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "memoffset"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mime"
++version = "0.3.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "mime_guess"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++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)",
++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys 0.2.2 (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)",
++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mio-uds"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozdevice"
++version = "0.1.0"
++dependencies = [
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozprofile"
++version = "0.6.0"
++dependencies = [
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozrunner"
++version = "0.10.0"
++dependencies = [
++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mozprofile 0.6.0",
++ "plist 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mozversion"
++version = "0.2.1"
++dependencies = [
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rust-ini 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "msdos_time"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++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)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "opaque-debug"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "parking_lot"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.6.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)",
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "percent-encoding"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "plist"
++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)",
++ "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "line-wrap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "podio"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.7"
++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 = "quick-error"
++version = "1.2.3"
++source = "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.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.6.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_xorshift 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 = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (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_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.1.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 = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_isaac"
++version = "0.1.1"
++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 = "rand_jitter"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "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)",
++ "winapi 0.3.8 (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 = "rand_pcg"
++version = "0.1.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)",
++ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_xorshift"
++version = "0.1.1"
++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 = "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.3"
++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.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "remove_dir_all"
++version = "0.5.2"
++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 = "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.10 (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 = "rust-ini"
++version = "0.10.3"
++source = "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 = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "safemem"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "scoped-tls"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "scopeguard"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "semver"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde"
++version = "1.0.104"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.104"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_repr"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (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.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_urlencoded"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "serde_yaml"
++version = "0.8.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "sha-1"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "smallvec"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "smallvec"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "string"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (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.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.7 (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.7 (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.13 (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 = "tempfile"
++version = "3.1.0"
++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)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "term_size"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (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 = [
++ "term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++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 = "time"
++version = "0.1.42"
++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_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio"
++version = "0.1.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-udp 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-buf"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-codec"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-current-thread"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-executor"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-fs"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-io"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-reactor"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-sync"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-tcp"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-threadpool"
++version = "0.1.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-timer"
++version = "0.2.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-udp"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tokio-uds"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (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)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "try-lock"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "typenum"
++version = "1.11.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicase"
++version = "2.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-bidi"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-normalization"
++version = "0.1.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "smallvec 1.1.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.7"
++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 = "url"
++version = "2.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "urlencoding"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.7.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "want"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "warp"
++version = "0.1.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "headers 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "urlencoding 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "webdriver"
++version = "0.40.2"
++dependencies = [
++ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "warp 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++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-build"
++version = "0.1.1"
++source = "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-util"
++version = "0.1.3"
++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 = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winreg"
++version = "0.5.1"
++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 = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "xml-rs"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "yaml-rust"
++version = "0.4.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zip"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[metadata]
++"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
++"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
++"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 autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b4b1549d804b6c73f4817df2ba073709e96e426f12987127c48e6745568c350b"
++"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.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
++"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
++"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
++"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
++"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.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
++"checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
++"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
++"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
++"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
++"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
++"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
++"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
++"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
++"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
++"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++"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 fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
++"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
++"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
++"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
++"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
++"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
++"checksum headers 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "882ca7d8722f33ce2c2db44f95425d6267ed59ca96ce02acbe58320054ceb642"
++"checksum headers-core 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "967131279aaa9f7c20c7205b45a391638a83ab118e6509b2d0ccbe08de044237"
++"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
++"checksum http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
++"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
++"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
++"checksum hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)" = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
++"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++"checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++"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 line-wrap 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9"
++"checksum linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83"
++"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
++"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
++"checksum memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3197e20c7edb283f87c071ddfc7a2cca8f8e0b888c242959846a6fce03c72223"
++"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
++"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
++"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
++"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aad9dfe950c057b1bfe9c1f2aa51583a8468ef2a5baba2ebbe06d775efeb7729"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
++"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
++"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
++"checksum plist 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31850d149352e2b75f0e4b206045ee3775076c422892328343beca48a2b5cf17"
++"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
++"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
++"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
++"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
++"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_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
++"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
++"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
++"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
++"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
++"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.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b5508c1941e4e7cb19965abef075d35a9a8b5cdf0846f30b4050e9b55dc55e87"
++"checksum regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e734e891f5b408a29efbf8309e656876276f49ab6a6ac208600b4419bd893d90"
++"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
++"checksum rust-argon2 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4ca4eaef519b494d1f2848fc602d18816fed808a981aedf4f1f00ceb7c9d32cf"
++"checksum rust-ini 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8a654c5bda722c699be6b0fe4c0d90de218928da5b724c3e467fc48865c37263"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
++"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"checksum scoped-tls 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
++"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
++"checksum semver 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
++"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
++"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
++"checksum serde_repr 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "cd02c7587ec314570041b2754829f84d873ced14a96d1fd1823531e11db40573"
++"checksum serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
++"checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35"
++"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
++"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
++"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
++"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
++"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++"checksum term_size 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9e5b9a66db815dcfd2da92db471106457082577c3c278d4138ab3e3b4e189327"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
++"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
++"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
++"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443"
++"checksum tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "ca6df436c42b0c3330a82d855d2ef017cd793090ad550a6bc2184f4b933532ab"
++"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af"
++"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
++"checksum tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146"
++"checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76"
++"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
++"checksum tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c32ffea4827978e9aa392d2f743d973c1dfa3730a2ed3f22ce1e6984da848c"
++"checksum tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1739638e364e558128461fc1ad84d997702c8e31c2e6b18fb99842268199e827"
++"checksum tokio-udp 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f02298505547f73e60f568359ef0d016d5acd6e830ab9bc7c4a5b3403440121b"
++"checksum tokio-uds 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445"
++"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
++"checksum typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
++"checksum unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
++"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
++"checksum urlencoding 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3df3561629a8bb4c57e5a2e4c43348d9e29c7c29d9b1c4c1f47166deca8f37ed"
++"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
++"checksum warp 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "3921463c44f680d24f1273ea55efd985f31206a22a02dee207a2ec72684285ca"
++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum winreg 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a27a759395c1195c4cc5cda607ef6f8f6498f64e78f7900f5de0a127a424704a"
++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5"
++"checksum yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "65923dd1784f44da1d2c3dbbc5e822045628c590ba72123e1c73d3c230c4434d"
++"checksum zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "36b9e08fb518a65cf7e08a1e482573eb87a2f4f8c6619316612a3c1f162fe822"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/default.nix
new file mode 100644
index 000000000000..7cc43f14baeb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/geckodriver/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchzip
+, rustPlatform
+, stdenv
+, darwin
+}:
+
+rustPlatform.buildRustPackage {
+ version = "0.26.0";
+ pname = "geckodriver";
+ sourceRoot = "source/testing/geckodriver";
+
+ # Source revisions are noted alongside the binary releases:
+ # https://github.com/mozilla/geckodriver/releases
+ src = (fetchzip {
+ url = "https://hg.mozilla.org/mozilla-central/archive/e9783a644016aa9b317887076618425586730d73.zip/testing";
+ sha256 = "0m86hqyq1jrr49jkc8mnlmx4bdq281hyxhcrrzacyv20nlqwvd8v";
+ }).overrideAttrs (_: {
+ # normally guessed by the url's file extension, force it to unpack properly
+ unpackCmd = "unzip $curSrc";
+ });
+
+ cargoPatches = [ ./cargo-lock.patch ];
+ cargoSha256 = "1dv8vcjy8r9z19grj4gms05bhaafyr42y3q69h3azwq6dmacfd3y";
+
+ buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ meta = with lib; {
+ description = "Proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers";
+ homepage = "https://github.com/mozilla/geckodriver";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ jraygauthier ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ghp-import/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ghp-import/default.nix
new file mode 100644
index 000000000000..4c258d6154ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ghp-import/default.nix
@@ -0,0 +1,28 @@
+{ python3, glibcLocales, lib }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ version = "0.5.5";
+ pname = "ghp-import";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1mvmpi7lqflw2lr0g0y5f9s0d1pv9cav4gbmaqnziqg442klx4iy";
+ };
+
+ disabled = isPyPy;
+ buildInputs = [ glibcLocales ];
+
+ LC_ALL="en_US.UTF-8";
+
+ # No tests available
+ doCheck = false;
+
+ meta = {
+ description = "Copy your docs directly to the gh-pages branch";
+ homepage = "https://github.com/davisp/ghp-import";
+ license = "Tumbolia Public License";
+ maintainers = with lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ginkgo/default.nix
new file mode 100644
index 000000000000..4670c13a63ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "ginkgo";
+ version = "1.14.2";
+
+ src = fetchFromGitHub {
+ owner = "onsi";
+ repo = "ginkgo";
+ rev = "v${version}";
+ sha256 = "1pvslbfrpzc8n99x33gyvk9aaz6lvdyyg6cj3axjzkyjxmh6d5kc";
+ };
+ vendorSha256 = "072amyw1ir18v9vk268j2y7dhw3lfwvxzvzsdqhnp50rxsa911bx";
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "BDD Testing Framework for Go";
+ homepage = "https://github.com/onsi/ginkgo";
+ license = licenses.mit;
+ maintainers = with maintainers; [ saschagrunert ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gir/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gir/default.nix
new file mode 100644
index 000000000000..02a3c13afb3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gir/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "gir";
+ version = "2019-10-16";
+
+ src = fetchFromGitHub {
+ owner = "gtk-rs";
+ repo = "gir";
+ rev = "241d790085a712db7436c5c25b210ccb7d1a08d5";
+ sha256 = "1kn5kgdma9j6dwpmv6jmydak7ajlgdkw9sfkh3q7h8c2a8yikvxr";
+ };
+
+ cargoSha256 = "048qhlc4f5khxi7dnakgqkhgww44r6h3mlx2fm7y2wqivr3rj8p1";
+
+ meta = with stdenv.lib; {
+ description = "Tool to generate rust bindings and user API for glib-based libraries";
+ homepage = "https://github.com/gtk-rs/gir/";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ ekleog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/git-ftp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/git-ftp/default.nix
new file mode 100644
index 000000000000..0c107ecc5031
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/git-ftp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pandoc, man }:
+stdenv.mkDerivation rec {
+ pname = "git-ftp";
+ version = "1.6.0";
+ src = fetchFromGitHub {
+ owner = "git-ftp";
+ repo = "git-ftp";
+ rev = version;
+ sha256 = "1hxkqf7jbrx24q18yxpnd3dxzh4xk6asymwkylp1x7zg6mcci87d";
+ };
+
+ dontBuild = true;
+
+ installPhase = ''
+ make install-all prefix=$out
+ '';
+
+ buildInputs = [pandoc man];
+
+ meta = with stdenv.lib; {
+ description = "Git powered FTP client written as shell script";
+ homepage = "https://git-ftp.github.io/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ tweber ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
new file mode 100644
index 000000000000..0ceb6f566a31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, gawk
+, git
+, gnugrep
+, ncurses
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+ pname = "git-quick-stats";
+ version = "2.1.4";
+
+ src = fetchFromGitHub {
+ repo = "git-quick-stats";
+ owner = "arzzen";
+ rev = version;
+ sha256 = "0fg0fijghcz7hvbc9y8dfksz0qmsz700kc2mfb03y90kja99v68y";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installFlags = [
+ "PREFIX=${builtins.placeholder "out"}"
+ ];
+
+ postInstall =
+ let
+ path = stdenv.lib.makeBinPath [
+ coreutils
+ gawk
+ git
+ gnugrep
+ ncurses
+ utillinux
+ ];
+ in
+ ''
+ wrapProgram $out/bin/git-quick-stats --suffix PATH : ${path}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/arzzen/git-quick-stats";
+ description = "A simple and efficient way to access various statistics in git repository";
+ platforms = platforms.all;
+ maintainers = [ maintainers.kmein ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/git-repo-updater/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/git-repo-updater/default.nix
new file mode 100644
index 000000000000..dbf83677999a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/git-repo-updater/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonApplication, fetchPypi
+, colorama, GitPython }:
+
+buildPythonApplication rec {
+ pname = "gitup";
+ version = "0.5.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1pa612rcc94nc461zs9sag9p46sycc214622b06gdn35rmwp0y2g";
+ };
+
+ propagatedBuildInputs = [ colorama GitPython ];
+
+ meta = with lib; {
+ description = "Easily update multiple Git repositories at once";
+ homepage = "https://github.com/earwig/git-repo-updater";
+ license = licenses.mit;
+ maintainers = [ maintainers.bdesham ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/git-series/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/git-series/default.nix
new file mode 100644
index 000000000000..3507131082e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/git-series/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, fetchpatch, rustPlatform
+, openssl, cmake, perl, pkgconfig, zlib, curl, libgit2, libssh2
+}:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ version = "0.9.1";
+ pname = "git-series";
+
+ src = fetchFromGitHub {
+ owner = "git-series";
+ repo = "git-series";
+ rev = version;
+ sha256 = "07mgq5h6r1gf3jflbv2khcz32bdazw7z1s8xcsafdarnm13ps014";
+ };
+
+ cargoSha256 = "0ijgx8fksg2najb336dhddxlqfzc338f9ylydkpw6b39k72mm00d";
+
+ cargoPatches = [
+ (fetchpatch {
+ url = "https://github.com/Mic92/git-series/commit/3aa30a47d74ebf90b444dccdf8c153f07f119483.patch";
+ sha256 = "06v8br9skvy75kcw2zgbswxyk82sqzc8smkbqpzmivxlc2i9rnh0";
+ })
+ # Update Cargo.lock to allow using OpenSSL 1.1
+ (fetchpatch {
+ url = "https://github.com/edef1c/git-series/commit/11fe70ffcc18200e5f2a159c36aab070e8ff4228.patch";
+ sha256 = "0clwllf9mrhq86dhzyyhkw1q2ggpgqpw7s05dvp3gj9zhfsyya4s";
+ })
+ # Cargo.lock: Update url, which fixes incompatibility with NLL
+ (fetchpatch {
+ url = "https://github.com/edef1c/git-series/commit/27ff2ecf2d615dae1113709eca0e43596de12ac4.patch";
+ sha256 = "1byjbdcx56nd0bbwz078bl340rk334mb34cvaa58h76byvhpkw10";
+ })
+ ];
+
+ LIBGIT2_SYS_USE_PKG_CONFIG = true;
+ LIBSSH2_SYS_USE_PKG_CONFIG = true;
+ nativeBuildInputs = [ cmake pkgconfig perl ];
+ buildInputs = [ openssl zlib curl libgit2 libssh2 ];
+
+ postBuild = ''
+ install -D "$src/git-series.1" "$out/man/man1/git-series.1"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool to help with formatting git patches for review on mailing lists";
+ longDescription = ''
+ git series tracks changes to a patch series over time. git
+ series also tracks a cover letter for the patch series,
+ formats the series for email, and prepares pull requests.
+ '';
+ homepage = "https://github.com/git-series/git-series";
+
+ license = licenses.mit;
+ maintainers = with maintainers; [ edef vmandela ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile
new file mode 100644
index 000000000000..5db8cdb73488
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile
@@ -0,0 +1,4 @@
+# frozen_string_literal: true
+source "https://rubygems.org"
+
+gem "github_changelog_generator", "1.14.3"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile.lock
new file mode 100644
index 000000000000..d1f67ddd4747
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/Gemfile.lock
@@ -0,0 +1,49 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (5.2.2)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ addressable (2.5.2)
+ public_suffix (>= 2.0.2, < 4.0)
+ concurrent-ruby (1.1.4)
+ faraday (0.15.4)
+ multipart-post (>= 1.2, < 3)
+ faraday-http-cache (2.0.0)
+ faraday (~> 0.8)
+ github_changelog_generator (1.14.3)
+ activesupport
+ faraday-http-cache
+ multi_json
+ octokit (~> 4.6)
+ rainbow (>= 2.1)
+ rake (>= 10.0)
+ retriable (~> 2.1)
+ i18n (1.2.0)
+ concurrent-ruby (~> 1.0)
+ minitest (5.11.3)
+ multi_json (1.13.1)
+ multipart-post (2.0.0)
+ octokit (4.13.0)
+ sawyer (~> 0.8.0, >= 0.5.3)
+ public_suffix (3.0.3)
+ rainbow (3.0.0)
+ rake (12.3.2)
+ retriable (2.1.0)
+ sawyer (0.8.1)
+ addressable (>= 2.3.5, < 2.6)
+ faraday (~> 0.8, < 1.0)
+ thread_safe (0.3.6)
+ tzinfo (1.2.5)
+ thread_safe (~> 0.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ github_changelog_generator (= 1.14.3)
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/default.nix
new file mode 100644
index 000000000000..0239259a0c81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "github_changelog_generator";
+ gemdir = ./.;
+ exes = [ "github_changelog_generator" ];
+
+ passthru.updateScript = bundlerUpdateScript "github-changelog-generator";
+
+ meta = with lib; {
+ description = "Fully automated changelog generation - This gem generates a changelog file based on tags, issues and merged pull requests";
+ homepage = "https://github.com/github-changelog-generator/github-changelog-generator";
+ license = licenses.mit;
+ maintainers = with maintainers; [ Scriptkiddi nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/gemset.nix
new file mode 100644
index 000000000000..3382557aaa57
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-changelog-generator/gemset.nix
@@ -0,0 +1,155 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1iya7vxqwxysr74s7b4z1x19gmnx5advimzip3cbmsd5bd43wfgz";
+ type = "gem";
+ };
+ version = "5.2.2";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+ type = "gem";
+ };
+ version = "2.5.2";
+ };
+ concurrent-ruby = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ixcx9pfissxrga53jbdpza85qd5f6b5nq1sfqa9rnfq82qnlbp1";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+ type = "gem";
+ };
+ version = "0.15.4";
+ };
+ faraday-http-cache = {
+ dependencies = ["faraday"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08j86fgcwl7z792qyijdsq680arzpfiydqd24ja405z2rbm7r2i0";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ github_changelog_generator = {
+ dependencies = ["activesupport" "faraday-http-cache" "multi_json" "octokit" "rainbow" "rake" "retriable"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ylqfmc78i6jf42ydkyng0gzvsl5w80wr3rjkhd6q4kgi96n70lr";
+ type = "gem";
+ };
+ version = "1.14.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "079sqshk08mqs3d6yzvshmqf4s175lpi2pp71f1p10l09sgmrixr";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ minitest = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0icglrhghgwdlnzzp4jf76b0mbc71s80njn5afyfjn4wqji8mqbq";
+ type = "gem";
+ };
+ version = "5.11.3";
+ };
+ multi_json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ multipart-post = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ octokit = {
+ dependencies = ["sawyer"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yh0yzzqg575ix3y2l2261b9ag82gv2v4f1wczdhcmfbxcz755x6";
+ type = "gem";
+ };
+ version = "4.13.0";
+ };
+ public_suffix = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+ type = "gem";
+ };
+ version = "3.0.3";
+ };
+ rainbow = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rake = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1sy5a7nh6xjdc9yhcw31jji7ssrf9v5806hn95gbrzr998a2ydjn";
+ type = "gem";
+ };
+ version = "12.3.2";
+ };
+ retriable = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1123kqmy3yk7k3vidvcwa46lknmhilv8axpaiag1wifa576hkqy1";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ sawyer = {
+ dependencies = ["addressable" "faraday"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sv1463r7bqzvx4drqdmd36m7rrv6sf1v3c6vswpnq3k6vdw2dvd";
+ type = "gem";
+ };
+ version = "0.8.1";
+ };
+ thread_safe = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fjx9j327xpkkdlxwmkl3a8wqj7i4l4jwlrv3z13mg95z9wl253z";
+ type = "gem";
+ };
+ version = "1.2.5";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/default.nix
new file mode 100644
index 000000000000..969d7950cb95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "github-commenter";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "cloudposse";
+ repo = pname;
+ rev = version;
+ sha256 = "0y7yw7x8gqfbkqdfrwd9lffx3rrp62nz1aa86liy2dja97dacpij";
+ };
+
+ goPackagePath = "github.com/cloudposse/${pname}";
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "Command line utility for creating GitHub comments on Commits, Pull Request Reviews or Issues";
+ license = licenses.asl20;
+ homepage = "https://github.com/cloudposse/github-commenter";
+ maintainers = [ maintainers.mmahut ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/deps.nix
new file mode 100644
index 000000000000..4b6be6c6d625
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github-commenter/deps.nix
@@ -0,0 +1,102 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/Masterminds/goutils";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/goutils";
+ rev = "41ac8693c5c10a92ea1ff5ac3a7f95646f6123b0";
+ sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
+ };
+ }
+ {
+ goPackagePath = "github.com/Masterminds/semver";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/semver";
+ rev = "0fd41f6ff0825cf7efae00e706120bdd48914d93";
+ sha256 = "0jf1c03c9cibfci7qaxbk8h758gmc9i0115jdw57v5c45hklw9ah";
+ };
+ }
+ {
+ goPackagePath = "github.com/Masterminds/sprig";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/sprig";
+ rev = "7525b3376b8792ab24d07381324e4e2463e3356b";
+ sha256 = "05ia4r8b86s7pk8r3jmjq5x7pgsmp6wvcm42z8vl6vdhdr28bfrg";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/go-github";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-github";
+ rev = "24f172eae1a0c53c780f259d8492979900e9af2e";
+ sha256 = "1bxklfrl1wx2691qindiikkbyixd9p8pfqjn0xqi4riy5hcgz96s";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/go-querystring";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/go-querystring";
+ rev = "c8c88dbee036db4e4808d1f2ec8c2e15e11c3f80";
+ sha256 = "1yckg2052mz7ps1m68wri6kyb5n4g0vx2yf7s0xs9gdqvvscp57l";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/uuid";
+ rev = "c2e93f3ae59f2904160ceaab466009f965df46d6";
+ sha256 = "0zw8fvl6jqg0fmv6kmvhss0g4gkrbvgyvl2zgy5wdbdlgp4fja0h";
+ };
+ }
+ {
+ goPackagePath = "github.com/huandu/xstrings";
+ fetch = {
+ type = "git";
+ url = "https://github.com/huandu/xstrings";
+ rev = "8bbcf2f9ccb55755e748b7644164cd4bdce94c1d";
+ sha256 = "1ivvc95514z63k7cpz71l0dwlanffmsh1pijhaqmp41kfiby8rsx";
+ };
+ }
+ {
+ goPackagePath = "github.com/imdario/mergo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/imdario/mergo";
+ rev = "4c317f2286be3bd0c4f1a0e622edc6398ec4656d";
+ sha256 = "0bihha1qsgfjk14yv1hwddv3d8dzxpbjlaxwwyys6lhgxz1cr9h9";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "27936f6d90f9c8e1145f11ed52ffffbfdb9e0af7";
+ sha256 = "0yzmgi6g4ak4q8y7w6x0n5cbinlcn8yc3gwgzy4yck00qdn25d6y";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "4def268fd1a49955bfb3dda92fe3db4f924f2285";
+ sha256 = "1bfsnari529gw34cz0zqk3d9mrkcj1ay35kangri8kbgll0ss5a6";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "ca1201d0de80cfde86cb01aea620983605dfe99b";
+ sha256 = "16j9xyby1vfl4ch6wqzafxxxnxvcp8vhzknpchwabci1f2zcsn6i";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github/cligh/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github/cligh/default.nix
new file mode 100644
index 000000000000..5eb65dc4fbdf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github/cligh/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, buildPythonApplication, pyxdg, PyGithub }:
+
+buildPythonApplication rec {
+ pname = "cligh";
+ version = "0.3";
+
+ doCheck = false; # no tests
+
+ src = fetchFromGitHub {
+ owner = "CMB";
+ repo = "cligh";
+ rev = "v${version}";
+ sha256 = "0d1fd78rzl2n75xpmy1gnxh1shvcs4qm0j4qqszqvfriwkg2flxn";
+ };
+
+ propagatedBuildInputs = [ pyxdg PyGithub ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://the-brannons.com/software/cligh.html";
+ description = "A simple command-line interface to the facilities of Github";
+ longDescription = ''
+ Cligh is a simple command-line interface to the facilities of GitHub.
+ It is written by Christopher Brannon chris@the-brannons.com. The
+ current version is 0.3, released July 23, 2016. This program is still
+ in the early stage of development. It is by no means feature-complete.
+ A friend and I consider it useful, but others may not.
+ '';
+ platforms = platforms.all;
+ license = licenses.bsd3;
+ maintainers = [ maintainers.jhhuh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/github/github-release/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/github/github-release/default.nix
new file mode 100644
index 000000000000..8b68426d4b5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/github/github-release/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, system, fetchurl }:
+
+let
+ linuxPredicate = system == "x86_64-linux";
+ bsdPredicate = system == "x86_64-freebsd";
+ darwinPredicate = system == "x86_64-darwin";
+ metadata = assert linuxPredicate || bsdPredicate || darwinPredicate;
+ if linuxPredicate then
+ { arch = "linux-amd64";
+ sha256 = "0p0qj911nmmdj0r7wx3363gid8g4bm3my6mj3d6s4mwgh9lfisiz";
+ archiveBinaryPath = "linux/amd64"; }
+ else if bsdPredicate then
+ { arch = "freebsd-amd64";
+ sha256 = "0g618y9n39j11l1cbhyhwlbl2gv5a2a122c1dps3m2wmv7yzq5hk";
+ archiveBinaryPath = "freebsd/amd64"; }
+ else
+ { arch = "darwin-amd64";
+ sha256 = "0l623fgnsix0y3f960bwx3dgnrqaxs21w5652kvaaal7dhnlgmwj";
+ archiveBinaryPath = "darwin/amd64"; };
+in stdenv.mkDerivation rec {
+ shortname = "github-release";
+ name = "${shortname}-${version}";
+ version = "0.7.2";
+
+ src = fetchurl {
+ url = "https://github.com/aktau/github-release/releases/download/v${version}/${metadata.arch}-${shortname}.tar.bz2";
+ sha256 = metadata.sha256;
+ };
+
+ buildInputs = [ ];
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp "${metadata.archiveBinaryPath}/github-release" "$out/bin/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Commandline app to create and edit releases on Github (and upload artifacts)";
+ longDescription = ''
+ A small commandline app written in Go that allows you to easily create and
+ delete releases of your projects on Github.
+ In addition it allows you to attach files to those releases.
+ '';
+
+ license = licenses.mit;
+ homepage = "https://github.com/aktau/github-release";
+ maintainers = with maintainers; [ ardumont ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glade/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glade/default.nix
new file mode 100644
index 000000000000..85bc037b1976
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glade/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, gettext
+, fetchurl
+, python3
+, pkg-config
+, gtk3
+, glib
+, gobject-introspection
+, wrapGAppsHook
+, itstool
+, libxml2
+, docbook-xsl-nons
+, gnome3
+, gdk-pixbuf
+, libxslt
+, gsettings-desktop-schemas
+}:
+
+stdenv.mkDerivation rec {
+ pname = "glade";
+ version = "3.36.0";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/glade/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r";
+ };
+
+ nativeBuildInputs = [
+ pkg-config
+ gettext
+ itstool
+ wrapGAppsHook
+ docbook-xsl-nons
+ libxslt
+ libxml2
+ gobject-introspection
+ ];
+
+ buildInputs = [
+ gtk3
+ glib
+ libxml2
+ python3
+ python3.pkgs.pygobject3
+ gsettings-desktop-schemas
+ gdk-pixbuf
+ gnome3.adwaita-icon-theme
+ ];
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Glade";
+ description = "User interface designer for GTK applications";
+ maintainers = teams.gnome.members;
+ license = licenses.lgpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glide/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glide/default.nix
new file mode 100644
index 000000000000..4f511813ad0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glide/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "glide";
+ version = "0.13.3";
+
+ goPackagePath = "github.com/Masterminds/glide";
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X main.version=${version}
+ '';
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "Masterminds";
+ repo = "glide";
+ sha256 = "1wskg1cxqy9sp0738qiiagdw09dbs3swxsk4z6w5hsfiq2h44a54";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://glide.sh";
+ description = "Package management for Go";
+ license = licenses.mit;
+ maintainers = [ maintainers.rushmorem ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gllvm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gllvm/default.nix
new file mode 100644
index 000000000000..7c4213b4cc0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gllvm/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gllvm";
+ version = "1.2.7";
+
+ goPackagePath = "github.com/SRI-CSL/gllvm";
+
+ src = fetchFromGitHub {
+ owner = "SRI-CSL";
+ repo = "gllvm";
+ rev = "v${version}";
+ sha256 = "13cmmgbcdfgyxnxqfrn4m6vf0bhpday8lmrr3sm6rk48g77cq203";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/SRI-CSL/gllvm";
+ description = "Whole Program LLVM: wllvm ported to go";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix
new file mode 100644
index 000000000000..2f125d3ea8a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchFromGitHub, jdk8, maven, makeWrapper, jre8_headless, pcsclite }:
+
+let jdk = jdk8; jre_headless = jre8_headless; in
+# TODO: This is quite a bit of duplicated logic with gephi. Factor it out?
+stdenv.mkDerivation rec {
+ pname = "global-platform-pro";
+ version = "18.09.14";
+ GPPRO_VERSION = "18.09.14-0-gb439b52"; # git describe --tags --always --long --dirty
+
+ src = fetchFromGitHub {
+ owner = "martinpaljak";
+ repo = "GlobalPlatformPro";
+ rev = version;
+ sha256 = "1vws6cbgm3mrwc2xz9j1y262vw21x3hjc9m7rqc4hn3m7gjpwsvg";
+ };
+
+ deps = stdenv.mkDerivation {
+ name = "${pname}-${version}-deps";
+ inherit src;
+ nativeBuildInputs = [ jdk maven ];
+ installPhase = ''
+ # Download the dependencies
+ while ! mvn package "-Dmaven.repo.local=$out/.m2" -Dmaven.wagon.rto=5000; do
+ echo "timeout, restart maven to continue downloading"
+ done
+
+ # And keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files
+ # with lastModified timestamps inside
+ find "$out/.m2" -type f \
+ -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' \
+ -delete
+ '';
+ outputHashAlgo = "sha256";
+ outputHashMode = "recursive";
+ outputHash = "1qwgvz6l5wia8q5824c9f3iwyapfskljhqf1z09fw6jjj1jy3b15";
+ };
+
+ nativeBuildInputs = [ jdk maven makeWrapper ];
+
+ buildPhase = ''
+ cp -dpR "${deps}/.m2" ./
+ chmod -R +w .m2
+ mvn package --offline -Dmaven.repo.local="$(pwd)/.m2"
+ '';
+
+ installPhase = ''
+ mkdir -p "$out/lib/java" "$out/share/java"
+ cp target/gp.jar "$out/share/java"
+ makeWrapper "${jre_headless}/bin/java" "$out/bin/gp" \
+ --add-flags "-jar '$out/share/java/gp.jar'" \
+ --prefix LD_LIBRARY_PATH : "${pcsclite.out}/lib"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command-line utility for managing applets and keys on Java Cards";
+ longDescription = ''
+ This command-line utility can be used to manage applets and keys
+ on Java Cards. It is made available as the `gp` executable.
+
+ The executable requires the PC/SC daemon running for correct execution.
+ If you run NixOS, it can be enabled with `services.pcscd.enable = true;`.
+ '';
+ homepage = "https://github.com/martinpaljak/GlobalPlatformPro";
+ license = with licenses; [ lgpl3 ];
+ maintainers = with maintainers; [ ekleog ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glock/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glock/default.nix
new file mode 100644
index 000000000000..0ffa521f38ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glock/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "glock";
+ version = "20160816-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "b8c84ff5ade15a6238ca61c20d3afc70d2e41276";
+
+ goPackagePath = "github.com/robfig/glock";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "robfig";
+ repo = "glock";
+ sha256 = "10jwn3k71p340g8d43zjx7k1j534rcd7rss8pif09mpfrn9qndhh";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/robfig/glock";
+ description = "A command-line tool to lock Go dependencies to specific revisions";
+ license = licenses.mit;
+ maintainers = [ maintainers.rushmorem ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glock/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glock/deps.nix
new file mode 100644
index 000000000000..b7392d757cfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glock/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by go2nix.
+[
+ {
+ goPackagePath = "github.com/agtorre/gocolorize";
+ fetch = {
+ type = "git";
+ url = "https://github.com/agtorre/gocolorize";
+ rev = "f42b554bf7f006936130c9bb4f971afd2d87f671";
+ sha256 = "1dj7s8bgw9qky344d0k9gz661c0m317a08a590184drw7m51hy9p";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "f1a397bba50dee815e8c73f3ec94ffc0e8df1a09";
+ sha256 = "1wy8nn2vg70n98g80i1zrk49129phyfbzxbicj748bmf82rnaxzg";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glpaper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glpaper/default.nix
new file mode 100644
index 000000000000..94d140552a10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glpaper/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchhg, meson, ninja, pkg-config, wlroots, wayland, wayland-protocols
+, libX11, libGL }:
+
+stdenv.mkDerivation {
+ name = "glpaper";
+ version = "unstable-2020-03-30";
+
+ src = fetchhg {
+ url = "https://hg.sr.ht/~scoopta/glpaper";
+ rev = "a95db77088dfb5636a87f3743fc9b5eca70c1ae2";
+ sha256 = "04y12910wvhy4aqx2sa63dy9l6nbs7b77yqpdhc96x2b3mgzgjfs";
+ };
+
+ nativeBuildInputs = [ meson ninja pkg-config ];
+ buildInputs = [
+ wayland
+ libX11 # required by libglvnd
+ libGL
+ ];
+
+ meta = with stdenv.lib; {
+ description =
+ "Wallpaper program for wlroots based Wayland compositors such as sway that allows you to render glsl shaders as your wallpaper";
+ homepage = "https://hg.sr.ht/~scoopta/glpaper";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ccellado ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/glslviewer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/glslviewer/default.nix
new file mode 100644
index 000000000000..b9e46ca41e17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/glslviewer/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, glfw, pkgconfig, libXrandr, libXdamage
+, libXext, libXrender, libXinerama, libXcursor, libXxf86vm, libXi
+, libX11, libGLU, python2Packages, ensureNewerSourcesForZipFilesHook
+, Cocoa
+}:
+
+stdenv.mkDerivation {
+ pname = "glslviewer";
+ version = "2019-04-22";
+
+ src = fetchFromGitHub {
+ owner = "patriciogonzalezvivo";
+ repo = "glslViewer";
+ rev = "fa3e2ed4810927d189e480b704366cca22f281f3";
+ sha256 = "1888jxi84f2nnc0kpzqrn2cada1z4zqyq8ss4ppb5y3wy7d87qjn";
+ };
+
+ nativeBuildInputs = [ pkgconfig ensureNewerSourcesForZipFilesHook ];
+ buildInputs = [
+ glfw libGLU glfw libXrandr libXdamage
+ libXext libXrender libXinerama libXcursor libXxf86vm
+ libXi libX11
+ ] ++ (with python2Packages; [ python setuptools wrapPython ])
+ ++ stdenv.lib.optional stdenv.isDarwin Cocoa;
+ pythonPath = with python2Packages; [ requests ];
+
+ # Makefile has /usr/local/bin hard-coded for 'make install'
+ preConfigure = ''
+ substituteInPlace Makefile \
+ --replace '/usr/local' "$out" \
+ --replace '/usr/bin/clang++' 'clang++'
+ substituteInPlace Makefile \
+ --replace 'python setup.py install' "python setup.py install --prefix=$out"
+ '';
+
+ preInstall = ''
+ mkdir -p $out/bin $(toPythonPath "$out")
+ export PYTHONPATH=$PYTHONPATH:$(toPythonPath "$out")
+ '';
+
+ postInstall = ''
+ wrapPythonPrograms
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Live GLSL coding renderer";
+ homepage = "http://patriciogonzalezvivo.com/2015/glslViewer/";
+ license = licenses.bsd3;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.hodapp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gnome-desktop-testing/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gnome-desktop-testing/default.nix
new file mode 100644
index 000000000000..e0dc9ecda80a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gnome-desktop-testing/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, glib
+, autoreconfHook
+, pkgconfig
+, systemd
+, fetchFromGitLab
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gnome-desktop-testing";
+ version = "unstable-2019-12-11";
+
+ src = fetchFromGitLab {
+ domain = "gitlab.gnome.org";
+ owner = "GNOME";
+ repo = "gnome-desktop-testing";
+ rev = "57239dc8ef49ba74d442603a07a3e132b0cfdc6a";
+ sha256 = "01c4jhpk23kfcnw3l9kfwjw9v5kgqmfhhqypw4k2d2sdkf4mgfv4";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ glib
+ systemd
+ ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "GNOME test runner for installed tests";
+ homepage = "https://wiki.gnome.org/Initiatives/GnomeGoals/InstalledTests";
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.jtojnar ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gnulib/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gnulib/default.nix
new file mode 100644
index 000000000000..81e4d8793752
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gnulib/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit }:
+
+stdenv.mkDerivation {
+ pname = "gnulib";
+ version = "20200223";
+
+ src = fetchgit {
+ url = "https://git.savannah.gnu.org/r/gnulib.git";
+ rev = "292fd5d6ff5ecce81ec3c648f353732a9ece83c0";
+ sha256 = "0hkg3nql8nsll0vrqk4ifda0v4kpi67xz42r8daqsql6c4rciqnw";
+ };
+
+ dontFixup = true;
+ # no "make install", gnulib is a collection of source code
+ installPhase = ''
+ mkdir -p $out; mv * $out/
+ ln -s $out/lib $out/include
+ mkdir -p $out/bin
+ ln -s $out/gnulib-tool $out/bin/
+ '';
+
+ meta = {
+ homepage = "https://www.gnu.org/software/gnulib/";
+ description = "Central location for code to be shared among GNU packages";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
new file mode 100644
index 000000000000..30344a52e065
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-bindata-assetfs";
+ version = "20160814-${rev}";
+ rev = "e1a2a7e";
+ goPackagePath = "github.com/elazarl/go-bindata-assetfs";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "elazarl";
+ repo = "go-bindata-assetfs";
+ sha256 = "0b6q8h9fwpgpkvml1j87wq9174g7px1dmskhm884drpvswda2djk";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Serve embedded files from jteeuwen/go-bindata";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ avnik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata/default.nix
new file mode 100644
index 000000000000..9256fab43bf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-bindata/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "go-bindata";
+ version = "unstable-2015-10-23";
+
+ goPackagePath = "github.com/jteeuwen/go-bindata";
+
+ src = fetchFromGitHub {
+ owner = "jteeuwen";
+ repo = "go-bindata";
+ rev = "a0ff2567cfb70903282db057e799fd826784d41d";
+ sha256 = "0d6zxv0hgh938rf59p1k5lj0ymrb8kcps2vfrb9kaarxsvg7y69v";
+ };
+
+ excludedPackages = "testdata";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jteeuwen/go-bindata";
+ description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
+ maintainers = with maintainers; [ cstrahan ];
+ license = licenses.cc0;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-junit-report/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
new file mode 100644
index 000000000000..96ebce0eaca6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-junit-report-unstable";
+ version = "2018-06-14";
+ rev = "385fac0ced9acaae6dc5b39144194008ded00697";
+
+ goPackagePath = "github.com/jstemmer/go-junit-report";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "jstemmer";
+ repo = "go-junit-report";
+ sha256 = "109zs8wpdmc2ijc2khyqija8imay88ka6v50xvrpnnwnd3ywckxi";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Converts go test output to an xml report, suitable for applications that expect junit xml reports (e.g. Jenkins)";
+ homepage = "https://${goPackagePath}";
+ maintainers = with maintainers; [ cryptix ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-langserver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-langserver/default.nix
new file mode 100644
index 000000000000..c6a0dcc0d9da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-langserver/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-langserver";
+ version = "2.0.0";
+
+ goPackagePath = "github.com/sourcegraph/go-langserver";
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "sourcegraph";
+ repo = "go-langserver";
+ sha256 = "1wv7xf81s3qi8xydxjkkp8vacdzrq8sbj04346fz73nsn85z0sgp";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A Go language server protocol server";
+ homepage = "https://github.com/sourcegraph/go-langserver";
+ license = licenses.mit;
+ maintainers = with maintainers; [ johnchildren ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-migrate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-migrate/default.nix
new file mode 100644
index 000000000000..96b66ebc0b5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-migrate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-migrate";
+ version = "4.12.2";
+
+ src = fetchFromGitHub {
+ owner = "golang-migrate";
+ repo = "migrate";
+ rev = "v${version}";
+ sha256 = "0vrc9y90aamj618sfipq2sgzllhdr4hmicj4yvl147klwb1rxlz6";
+ };
+
+ vendorSha256 = "0jpz5xvwsw4l7nmi7s1grvbfy4xjp50hrjycwicgv2ll719gz5v0";
+
+ subPackages = [ "cmd/migrate" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/golang-migrate/migrate";
+ description = "Database migrations. CLI and Golang library";
+ maintainers = with maintainers; [ offline ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-motion/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-motion/default.nix
new file mode 100644
index 000000000000..824668055b1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-motion/default.nix
@@ -0,0 +1,38 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "motion-unstable";
+ version = "2018-04-09";
+ rev = "218875ebe23806e7af82f3b5b14bb3355534f679";
+
+ goPackagePath = "github.com/fatih/motion";
+ excludedPackages = ''testdata'';
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "fatih";
+ repo = "motion";
+ sha256 = "08lp61hmb77p0cknf71jp8lssplxad3ddyqjxh8x3cr0bmn9ykr9";
+ };
+
+ meta = with lib; {
+ description = "Navigation and insight in Go";
+ longDescription = ''
+ Motion is a tool that was designed to work with editors. It is providing
+ contextual information for a given offset(option) from a file or
+ directory of files. Editors can use these informations to implement
+ navigation, text editing, etc... that are specific to a Go source code.
+
+ It's optimized and created to work with vim-go, but it's designed to work
+ with any editor. It's currently work in progress and open to change.
+ '';
+ homepage = "https://github.com/fatih/motion";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/default.nix
new file mode 100644
index 000000000000..f10ee426c080
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-outline";
+ version = "unstable-2018-11-22";
+ rev = "7182a932836a71948db4a81991a494751eccfe77";
+
+ goPackagePath = "github.com/ramya-rao-a/go-outline";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "ramya-rao-a";
+ repo = "go-outline";
+ sha256 = "0p381yvwvff0i4i7mf5v1k2q1lb0rs2xkjgv67n1cw2573c613r1";
+ };
+
+ meta = {
+ description = "Utility to extract JSON representation of declarations from a Go source file";
+ homepage = "https://github.com/ramya-rao-a/go-outline";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/deps.nix
new file mode 100644
index 000000000000..6a333b58bec6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-outline/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/tools";
+ rev = "96b5a5404f303f074e6117d832a9873c439508f0";
+ sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-protobuf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
new file mode 100644
index 000000000000..28d429c64328
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-protobuf";
+ version = "1.4.2";
+
+ src = fetchFromGitHub {
+ owner = "golang";
+ repo = "protobuf";
+ rev = "v${version}";
+ sha256 = "0m5z81im4nsyfgarjhppayk4hqnrwswr3nix9mj8pff8x9jvcjqw";
+ };
+
+ vendorSha256 = "04w9vhkrwb2zfqk73xmhignjyvjqmz1j93slkqp7v8jj2dhyla54";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/golang/protobuf";
+ description = " Go bindings for protocol buffer";
+ maintainers = with maintainers; [ lewo ];
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/default.nix
new file mode 100644
index 000000000000..3392a19b6360
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/default.nix
@@ -0,0 +1,17 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "go-repo-root";
+ version = "20140911-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "90041e5c7dc634651549f96814a452f4e0e680f9";
+
+ goPackagePath = "github.com/cstrahan/go-repo-root";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/cstrahan/go-repo-root";
+ sha256 = "1rlzp8kjv0a3dnfhyqcggny0ad648j5csr2x0siq5prahlp48mg4";
+ };
+
+ goDeps = ./deps.nix;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/deps.nix
new file mode 100644
index 000000000000..2554b3cad1a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-repo-root/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "golang.org/x/tools/go/vcs";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "9ae4729fba20b3533d829a9c6ba8195b068f2abc";
+ sha256 = "1j51aaskfqc953p5s9naqimr04hzfijm4yczdsiway1xnnvvpfr1";
+ };
+ }
+ {
+ goPackagePath = "code.google.com/p/go.tools/go/vcs";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "9ae4729fba20b3533d829a9c6ba8195b068f2abc";
+ sha256 = "1j51aaskfqc953p5s9naqimr04hzfijm4yczdsiway1xnnvvpfr1";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-swag/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-swag/default.nix
new file mode 100644
index 000000000000..0a0eb41d6131
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-swag/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "go-swag";
+ version = "1.6.7";
+
+ src = fetchFromGitHub {
+ owner = "swaggo";
+ repo = "swag";
+ rev = "df209afeed2334a97c83aff34ea7abcad85c31f6";
+ sha256 = "17pmcfkcmgjvs4drs0fyhp2m39gw83s0ck3rdzdkgdhrbhva9ksx";
+ };
+
+ vendorSha256 = "1i2n2sz2hc89nf2fqfq3swldz0xwrnms4j9q0lrss5gm3bk49q7f";
+
+ subPackages = [ "cmd/swag" ];
+
+ meta = with lib; {
+ description = "Automatically generate RESTful API documentation with Swagger 2.0 for Go";
+ homepage = "https://github.com/swaggo/swag";
+ license = licenses.mit;
+ maintainers = with maintainers; [ stephenwithph ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-swagger/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-swagger/default.nix
new file mode 100644
index 000000000000..7f0a1a50b6d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-swagger/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "go-swagger";
+ version = "0.25.0";
+
+ src = fetchFromGitHub {
+ owner = "go-swagger";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "05zyja58ff0k4fsfmb1j8q5p7lysi78m7jklrzz2xv8ianifkfbg";
+ };
+
+ vendorSha256 = "0vvr167spwk7whqzdp5vd8sm0qwc5g3namm4iqw3vff2pifjgs40";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/swagger" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Version=${version} -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Commit=${src.rev}" ];
+
+ meta = with lib; {
+ description = "Golang implementation of Swagger 2.0, representation of your RESTful API";
+ homepage = "https://github.com/go-swagger/go-swagger";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/default.nix
new file mode 100644
index 000000000000..1e2b63ba154f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-symbols";
+ version = "0.1.1";
+
+ goPackagePath = "github.com/acroca/go-symbols";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "acroca";
+ repo = "go-symbols";
+ rev = "v${version}";
+ sha256 = "0yyzw6clndb2r5j9isyd727njs98zzp057v314vfvknsm8g7hqrz";
+ };
+
+ meta = {
+ description = "A utility for extracting a JSON representation of the package symbols from a go source tree";
+ homepage = "https://github.com/acroca/go-symbols";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/deps.nix
new file mode 100644
index 000000000000..6a333b58bec6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-symbols/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/tools";
+ rev = "96b5a5404f303f074e6117d832a9873c439508f0";
+ sha256 = "1h6r9xyp1v3w2x8d108vzghn65l6ia2h895irypmrwymfcp30y42";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-task/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-task/default.nix
new file mode 100644
index 000000000000..c196f167ce0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-task";
+ version = "2.8.1";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = "task";
+ rev = "v${version}";
+ sha256 = "1yf5s22q4hsxvgzrj4k6gbbq0whl5b9j12mbwimxaf53q535wy4q";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ subPackages = [ "cmd/task" ];
+
+ buildFlagsArray = [
+ "-ldflags=-s -w -X main.version=${version}"
+ ];
+
+ postInstall = ''
+ mv $out/bin/task $out/bin/go-task
+ '';
+
+ meta = with lib; {
+ homepage = "https://taskfile.dev/";
+ description = "A task runner / simpler Make alternative written in Go";
+ license = licenses.mit;
+ maintainers = with maintainers; [ parasrah ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-toml/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-toml/default.nix
new file mode 100644
index 000000000000..3d892378133a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-toml/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-toml";
+ version = "1.8.1";
+
+ src = fetchFromGitHub {
+ owner = "pelletier";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1pi1r9ds0vxjza4qrbk52y98wxrzh1ghwzc9c2v1w6i02pdwdcz9";
+ };
+
+ goPackagePath = "github.com/pelletier/go-toml";
+
+ excludedPackages = [ "cmd/tomltestgen" ];
+
+ meta = with lib; {
+ description = "Go library for the TOML language";
+ homepage = "https://github.com/pelletier/go-toml";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go-tools/default.nix
new file mode 100644
index 000000000000..ec4b1ee66b3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go-tools/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule
+, lib
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "go-tools";
+ version = "2020.1.5";
+
+ src = fetchFromGitHub {
+ owner = "dominikh";
+ repo = "go-tools";
+ rev = version;
+ sha256 = "1ry3ywncc9qkmh8ihh67v6k8nmqhq2gvfyrl1ykl4z6s56b7f9za";
+ };
+
+ vendorSha256 = "0nbbngsphklzhcmqafrw1im2l1vnfcma9sb4vskdpdrsadv5ss5r";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A collection of tools and libraries for working with Go code, including linters and static analysis";
+ homepage = "https://staticcheck.io";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rvolosatovs kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/default.nix
new file mode 100644
index 000000000000..300f82ee5486
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoPackage, go-bindata, gotools, nix-prefetch-git, git, makeWrapper,
+ fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go2nix";
+ version = "1.3.0";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/kamilchm/go2nix";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "kamilchm";
+ repo = "go2nix";
+ sha256 = "1q61mgngvyl2bnmrqahh3bji402n76c7xwv29lwk007gymzgff0n";
+ };
+
+ goDeps = ./deps.nix;
+
+ outputs = [ "out" "man" ];
+
+ nativeBuildInputs = [ go-bindata gotools makeWrapper ];
+
+ preBuild = ''go generate ./...'';
+
+ postInstall = ''
+ wrapProgram $out/bin/go2nix \
+ --prefix PATH : ${nix-prefetch-git}/bin \
+ --prefix PATH : ${git}/bin
+
+ mkdir -p $man/share/man/man1
+ cp $src/go2nix.1 $man/share/man/man1
+ '';
+
+ allowGoReference = true;
+
+ doCheck = false; # tries to access the net
+
+ meta = with stdenv.lib; {
+ description = "Go apps packaging for Nix";
+ homepage = "https://github.com/kamilchm/go2nix";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kamilchm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/deps.nix
new file mode 100644
index 000000000000..8fc784f4b7f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/go2nix/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/Masterminds/vcs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Masterminds/vcs";
+ rev = "7af28b64c5ec41b1558f5514fd938379822c237c";
+ sha256 = "127pamr5lkym3iq6z747bm4y4gyc02glrqb61yv82z1rdyv1dcf6";
+ };
+ }
+ {
+ goPackagePath = "github.com/jawher/mow.cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jawher/mow.cli";
+ rev = "772320464101e904cd51198160eb4d489be9cc49";
+ sha256 = "1a8hnh2k3vc3prjhnz4rjbiwhqq6r3mi18h9cdb6fc6s6yzjc19j";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/goa/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/goa/default.nix
new file mode 100644
index 000000000000..6a373099a01b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/goa/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "goa";
+ version = "1.4.1";
+
+ goPackagePath = "github.com/goadesign/goa";
+ subPackages = [ "goagen" ];
+
+ src = fetchFromGitHub {
+ owner = "goadesign";
+ repo = "goa";
+ rev = "v${version}";
+ sha256 = "0qcd4ii6arlpsivfdhcwidvnd8zbxxvf574jyxyvm1aazl8sqxj7";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://goa.design";
+ description = "A framework for building microservices in Go using a unique design-first approach";
+ license = licenses.mit;
+ maintainers = [ maintainers.rushmorem ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/goa/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/goa/deps.nix
new file mode 100644
index 000000000000..bfe862a4006a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/goa/deps.nix
@@ -0,0 +1,75 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/dimfeld/httppath";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dimfeld/httppath";
+ rev = "ee938bf735983d53694d79138ad9820efff94c92";
+ sha256 = "1c1kic8g3r78g6h4xl8n2ac1waxsb9fqz40k20ypi08k24mv3ha9";
+ };
+ }
+ {
+ goPackagePath = "github.com/gofrs/uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gofrs/uuid";
+ rev = "e684523faa0581e44663968f097d478c499d4276";
+ sha256 = "1p2md0bmfnn7kaa866fnb8lfnmlzzb8wfhp4ym5915p8mv4whxgz";
+ };
+ }
+ {
+ goPackagePath = "github.com/manveru/faker";
+ fetch = {
+ type = "git";
+ url = "https://github.com/manveru/faker";
+ rev = "9fbc68a78c4dbc7914e1a23f88f126bea4383b97";
+ sha256 = "1cnrf4wdjhxd9fryhlp2krl9acz6dzwic89gshs49pg3aajlf4dy";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "4dab30cb33e6633c33c787106bafbfbfdde7842d";
+ sha256 = "1g7p7c2azqaxbfkx5yaznk0z1inqnajlbwv921k6vh8i1xdblxk5";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "1ce0cc6db4029d97571db82f85092fccedb572ce";
+ sha256 = "02wsc01npnpc7srqw7rzaihn2hjmrkfy2x412fxbb675j2hk9cx6";
+ };
+ }
+ {
+ goPackagePath = "github.com/zach-klippenstein/goregen";
+ fetch = {
+ type = "git";
+ url = "https://github.com/zach-klippenstein/goregen";
+ rev = "795b5e3961ea1912fde60af417ad85e86acc0d6a";
+ sha256 = "113kx47ryhyb803v8ckizlrc34cmwcwb0h28v34bahd2mir8nq3l";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "a754db16a40a9d94359b6600b825419c0ca6f986";
+ sha256 = "0n0cwb2szcjbyncqhdia77spcjsbm05jcgpnh0i8rdr16ixwanyq";
+ };
+ }
+ {
+ 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/development/tools/gocode-gomod/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
new file mode 100644
index 000000000000..01ee2931c998
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gocode-gomod";
+ version = "1.0.0";
+
+ # we must allow references to the original `go` package,
+ # because `gocode` needs to dig into $GOROOT to provide completions for the
+ # standard packages.
+ allowGoReference = true;
+
+ excludedPackages = ''internal/suggest/testdata'';
+
+ src = fetchFromGitHub {
+ owner = "stamblerre";
+ repo = "gocode";
+ rev = "v${version}";
+ sha256 = "YAOYrPPKgnjCErq8+iW0Le51clGBv0MJy2Nnn7UVo/s=";
+ };
+
+ vendorSha256 = null;
+
+ postInstall = ''
+ mv $out/bin/gocode $out/bin/gocode-gomod
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An autocompletion daemon for the Go programming language";
+ longDescription = ''
+ Gocode is a helper tool which is intended to be integrated with your
+ source code editor, like vim, neovim and emacs. It provides several
+ advanced capabilities, which currently includes:
+
+ - Context-sensitive autocompletion
+
+ It is called daemon, because it uses client/server architecture for
+ caching purposes. In particular, it makes autocompletions very fast.
+ Typical autocompletion time with warm cache is 30ms, which is barely
+ noticeable.
+ '';
+ homepage = "https://github.com/stamblerre/gocode";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit rvolosatovs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/default.nix
new file mode 100644
index 000000000000..f38d06b34c61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gocode-unstable";
+ version = "2020-04-06";
+ rev = "4acdcbdea79de6b3dee1c637eca5cbea0fdbe37c";
+
+ goPackagePath = "github.com/mdempsky/gocode";
+ excludedPackages = ''internal/suggest/testdata'';
+
+ # we must allow references to the original `go` package,
+ # because `gocode` needs to dig into $GOROOT to provide completions for the
+ # standard packages.
+ allowGoReference = true;
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "mdempsky";
+ repo = "gocode";
+ sha256 = "0i1hc089gb6a4mcgg56vn5l0q96wrlza2n08l4349s3dc2j559fb";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "An autocompletion daemon for the Go programming language";
+ longDescription = ''
+ Gocode is a helper tool which is intended to be integrated with your
+ source code editor, like vim, neovim and emacs. It provides several
+ advanced capabilities, which currently includes:
+
+ - Context-sensitive autocompletion
+
+ It is called daemon, because it uses client/server architecture for
+ caching purposes. In particular, it makes autocompletions very fast.
+ Typical autocompletion time with warm cache is 30ms, which is barely
+ noticeable.
+ '';
+ homepage = "https://github.com/mdempsky/gocode";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/deps.nix
new file mode 100644
index 000000000000..b2518109171a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gocode/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+ sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/goconst/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/goconst/default.nix
new file mode 100644
index 000000000000..5c2e40032e95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/goconst/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "goconst";
+ version = "1.2.0";
+
+ goPackagePath = "github.com/jgautheron/goconst";
+
+ excludedPackages = [ "tests" ];
+
+ src = fetchFromGitHub {
+ owner = "jgautheron";
+ repo = "goconst";
+ rev = version;
+ sha256 = "10yy9llmbznaq3v11sxywk1wpwhn0ddly7lxs31z1sf8paan7aig";
+ };
+
+ meta = with lib; {
+ description = "Find in Go repeated strings that could be replaced by a constant";
+ homepage = "https://github.com/jgautheron/goconst";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/default.nix
new file mode 100644
index 000000000000..173da3ff29dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "goconvey";
+ version = "1.6.3";
+
+ goPackagePath = "github.com/smartystreets/goconvey";
+ excludedPackages = "web/server/watch/integration_testing";
+
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "smartystreets";
+ repo = "goconvey";
+ rev = version;
+ sha256 = "1ph18rkl3ns3fgin5i4j54w5a69grrmf3apcsmnpdn1wlrbs3dxh";
+ };
+
+ meta = {
+ description = "Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go";
+ homepage = "https://github.com/smartystreets/goconvey";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/deps.nix
new file mode 100644
index 000000000000..d329359da709
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/goconvey/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/jtolds/gls";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jtolds/gls";
+ rev = "77f18212c9c7edc9bd6a33d383a7b545ce62f064";
+ sha256 = "1vm37pvn0k4r6d3m620swwgama63laz8hhj3pyisdhxwam4m2g1h";
+ };
+ }
+ {
+ goPackagePath = "github.com/smartystreets/assertions";
+ fetch = {
+ type = "git";
+ url = "https://github.com/smartystreets/assertions";
+ rev = "0b37b35ec7434b77e77a4bb29b79677cced992ea";
+ sha256 = "1j0adgbykl55rf2945g0n5bmqdsnjcqlx5dcmpfh4chki43hiwg9";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gocyclo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gocyclo/default.nix
new file mode 100644
index 000000000000..d11cf609328d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gocyclo/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "gocyclo-unstable";
+ version = "2015-02-08";
+ rev = "aa8f8b160214d8dfccfe3e17e578dd0fcc6fede7";
+
+ goPackagePath = "github.com/alecthomas/gocyclo";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "alecthomas";
+ repo = "gocyclo";
+ sha256 = "094rj97q38j53lmn2scshrg8kws8c542yq5apih1ahm9wdkv8pxr";
+ };
+
+ meta = with lib; {
+ description = "Calculate cyclomatic complexities of functions in Go source code";
+ homepage = "https://github.com/alecthomas/gocyclo";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godef/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/godef/default.nix
new file mode 100644
index 000000000000..c8149ecc82dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godef/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "godef";
+ version = "1.1.2";
+ rev = "v${version}";
+
+ subPackages = [ "." ];
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "rogpeppe";
+ repo = "godef";
+ sha256 = "0rhhg73kzai6qzhw31yxw3nhpsijn849qai2v9am955svmnckvf4";
+ };
+
+ meta = {
+ description = "Print where symbols are defined in Go source code";
+ homepage = "https://github.com/rogpeppe/godef/";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester rvolosatovs ];
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godot/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/default.nix
new file mode 100644
index 000000000000..492430cc7c70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, lib, fetchFromGitHub, scons, pkgconfig, libX11, libXcursor
+, libXinerama, libXrandr, libXrender, libpulseaudio ? null
+, libXi ? null, libXext, libXfixes, freetype, openssl
+, alsaLib, libGLU, zlib, yasm ? null }:
+
+let
+ options = {
+ touch = libXi != null;
+ pulseaudio = false;
+ };
+in stdenv.mkDerivation rec {
+ pname = "godot";
+ version = "3.2.3";
+
+ src = fetchFromGitHub {
+ owner = "godotengine";
+ repo = "godot";
+ rev = "${version}-stable";
+ sha256 = "19vrp5lhyvxbm6wjxzn28sn3i0s8j08ca7nani8l1nrhvlc8wi0v";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [
+ scons libX11 libXcursor libXinerama libXrandr libXrender
+ libXi libXext libXfixes freetype openssl alsaLib libpulseaudio
+ libGLU zlib yasm
+ ];
+
+ patches = [
+ ./pkg_config_additions.patch
+ ./dont_clobber_environment.patch
+ ];
+
+ enableParallelBuilding = true;
+
+ sconsFlags = "target=release_debug platform=x11";
+ preConfigure = ''
+ sconsFlags+=" ${lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)}"
+ '';
+
+ outputs = [ "out" "dev" "man" ];
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp bin/godot.* $out/bin/godot
+
+ mkdir "$dev"
+ cp -r modules/gdnative/include $dev
+
+ mkdir -p "$man/share/man/man6"
+ cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+
+ mkdir -p "$out"/share/{applications,icons/hicolor/scalable/apps}
+ cp misc/dist/linux/org.godotengine.Godot.desktop "$out/share/applications/"
+ cp icon.svg "$out/share/icons/hicolor/scalable/apps/godot.svg"
+ cp icon.png "$out/share/icons/godot.png"
+ substituteInPlace "$out/share/applications/org.godotengine.Godot.desktop" \
+ --replace "Exec=godot" "Exec=$out/bin/godot"
+ '';
+
+ meta = {
+ homepage = "https://godotengine.org";
+ description = "Free and Open Source 2D and 3D game engine";
+ license = stdenv.lib.licenses.mit;
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ maintainers = [ stdenv.lib.maintainers.twey ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
new file mode 100644
index 000000000000..b7c1d3d62335
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
@@ -0,0 +1,18 @@
+diff --git a/SConstruct b/SConstruct
+index b3d033dc90..04b8dcc832 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -62,10 +62,9 @@ elif platform_arg == "javascript":
+ custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"]
+
+ env_base = Environment(tools=custom_tools)
+-if "TERM" in os.environ:
+- env_base["ENV"]["TERM"] = os.environ["TERM"]
+-env_base.AppendENVPath("PATH", os.getenv("PATH"))
+-env_base.AppendENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
++for k in ("TERM", "PATH", "PKG_CONFIG_PATH"):
++ if (k in os.environ):
++ env_base["ENV"][k] = os.environ[k]
+ env_base.disabled_modules = []
+ env_base.use_ptrcall = False
+ env_base.module_version_string = ""
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godot/headless.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/headless.nix
new file mode 100644
index 000000000000..0ae28b774fbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/headless.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+ pname = "godot-headless";
+ sconsFlags = "target=release_debug platform=server tools=yes";
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp bin/godot_server.* $out/bin/godot-headless
+
+ mkdir "$dev"
+ cp -r modules/gdnative/include $dev
+
+ mkdir -p "$man/share/man/man6"
+ cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+ '';
+ meta.description =
+ "Free and Open Source 2D and 3D game engine (headless build)";
+ meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
new file mode 100644
index 000000000000..9e2e5c3536db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -0,0 +1,25 @@
+diff --git a/platform/x11/detect.py b/platform/x11/detect.py
+index 5674e78350..7051d8e73c 100644
+--- a/platform/x11/detect.py
++++ b/platform/x11/detect.py
+@@ -201,6 +201,11 @@ def configure(env):
+ env.ParseConfig("pkg-config xrender --cflags --libs")
+ env.ParseConfig("pkg-config xi --cflags --libs")
+
++ env.ParseConfig("pkg-config xext --cflags --libs")
++ env.ParseConfig("pkg-config xfixes --cflags --libs")
++ env.ParseConfig("pkg-config glu --cflags --libs")
++ env.ParseConfig("pkg-config zlib --cflags --libs")
++
+ if env["touch"]:
+ env.Append(CPPDEFINES=["TOUCH_ENABLED"])
+
+@@ -299,7 +304,7 @@ def configure(env):
+ print("Enabling ALSA")
+ env.Append(CPPDEFINES=["ALSA_ENABLED", "ALSAMIDI_ENABLED"])
+ # Don't parse --cflags, we don't need to add /usr/include/alsa to include path
+- env.ParseConfig("pkg-config alsa --libs")
++ env.ParseConfig("pkg-config alsa --cflags --libs")
+ else:
+ print("ALSA libraries not found, disabling driver")
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/godot/server.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/server.nix
new file mode 100644
index 000000000000..48f21b796c36
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/godot/server.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+ pname = "godot-server";
+ sconsFlags = "target=release platform=server tools=no";
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp bin/godot_server.* $out/bin/godot-server
+
+ mkdir "$dev"
+ cp -r modules/gdnative/include $dev
+
+ mkdir -p "$man/share/man/man6"
+ cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+ '';
+ meta.description =
+ "Free and Open Source 2D and 3D game engine (server build)";
+ meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gofumpt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gofumpt/default.nix
new file mode 100644
index 000000000000..080f4bd3305a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gofumpt/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gofumpt";
+ version = "2019-11-11";
+
+ src = fetchFromGitHub {
+ owner = "mvdan";
+ repo = pname;
+ rev = "eb442649d62000da5d11671f3beb1afa1b746fd7";
+ sha256 = "1cw9mmavxz8gxzzwsllvf5lwb2wwi19jbc7hcwxsi4ywp7a84gh0";
+ };
+
+ vendorSha256 = "14a3p163xy861xb6x160wy15hzjc75n36jdyzaxl877i17shba8z";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A stricter gofmt";
+ homepage = "https://github.com/mvdan/gofumpt";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ rvolosatovs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gogetdoc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
new file mode 100644
index 000000000000..2a111a8d1ab3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule
+, lib
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "gogetdoc-unstable";
+ version = "2019-02-28";
+ rev = "b37376c5da6aeb900611837098f40f81972e63e4";
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ excludedPackages = "\\(testdata\\)";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "zmb3";
+ repo = "gogetdoc";
+ sha256 = "1v74zd0x2xh10603p8raazssacv3y0x0lr9apkpsdk0bfp5jj0lr";
+ };
+
+ meta = with lib; {
+ description = "Gets documentation for items in Go source code";
+ homepage = "https://github.com/zmb3/gogetdoc";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/golangci-lint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
new file mode 100644
index 000000000000..1eaa00e80864
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
@@ -0,0 +1,37 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+ pname = "golangci-lint";
+ version = "1.31.0";
+
+ src = fetchFromGitHub {
+ owner = "golangci";
+ repo = "golangci-lint";
+ rev = "v${version}";
+ sha256 = "10divgsc095jiw7n3gwzikbgvsd0hdwjyv469vq939zm7rqq3acy";
+ };
+
+ vendorSha256 = "1pa99jfz6i696x6v06aq56r0kmxmz4khb1hw7pvxds0bn16a4swr";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/golangci-lint" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+
+ postInstall = ''
+ for shell in bash zsh; do
+ HOME=$TMPDIR $out/bin/golangci-lint completion $shell > golangci-lint.$shell
+ installShellCompletion golangci-lint.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Fast linters Runner for Go";
+ homepage = "https://golangci-lint.run/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ anpryl manveru ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/golint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/golint/default.nix
new file mode 100644
index 000000000000..284bb32f89e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/golint/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "lint";
+ version = "20181026-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "c67002cb31c3a748b7688c27f20d8358b4193582";
+
+ goPackagePath = "golang.org/x/lint";
+ excludedPackages = "testdata";
+
+ # we must allow references to the original `go` package, as golint uses
+ # compiler go/build package to load the packages it's linting.
+ allowGoReference = true;
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://go.googlesource.com/lint";
+ sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ homepage = "https://golang.org";
+ description = "Linter for Go source code";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ jhillyerd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/golint/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/golint/deps.nix
new file mode 100644
index 000000000000..e26400989338
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/golint/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "91f80e683c10fea00e7f965a1a7cac482ce52541";
+ sha256 = "16a2vppy5hnp663f28yak6592l8p968ihsc91pigamxx3vk1qh5d";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gomodifytags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
new file mode 100644
index 000000000000..70bbc635cc1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gomodifytags";
+ version = "1.6.0";
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ src = fetchFromGitHub {
+ owner = "fatih";
+ repo = "gomodifytags";
+ rev = "v${version}";
+ sha256 = "1wmzl5sk5mc46njzn86007sqyyv6han058ppiw536qyhk88rzazq";
+ };
+
+ meta = {
+ description = "Go tool to modify struct field tags";
+ homepage = "https://github.com/fatih/gomodifytags";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gomplate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gomplate/default.nix
new file mode 100644
index 000000000000..2bef9d53ff9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gomplate/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gomplate";
+ version = "3.8.0";
+ owner = "hairyhenderson";
+ rev = "v${version}";
+
+ src = fetchFromGitHub {
+ inherit owner rev;
+ repo = pname;
+ sha256 = "058shbrhpd8ghdj5qa6n7mf1bh8qvpmiv3yjj39jys359zhin06n";
+ };
+
+ vendorSha256 = "0wqz3anxlzb0ds6xmpnaxq5rjgcmzkzrdqhnkfkjq32b7mj9mks3";
+
+ # some tests require network access
+ postPatch = ''
+ rm net/net_test.go
+ '';
+
+ buildFlagsArray = [
+ "-ldflags="
+ "-s"
+ "-w"
+ "-X github.com/${owner}/${pname}/v3/version.Version=${rev}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A flexible commandline tool for template rendering";
+ homepage = "https://gomplate.ca/";
+ maintainers = with maintainers; [ ris jlesquembre ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix
new file mode 100644
index 000000000000..001edf5c038e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/google-app-engine-go-sdk/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchzip, python27, python27Packages, makeWrapper }:
+
+with python27Packages;
+
+stdenv.mkDerivation rec {
+ pname = "google-app-engine-go-sdk";
+ version = "1.9.61";
+ src =
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchzip {
+ url = "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-${version}.zip";
+ sha256 = "1i2j9ympl1218akwsmm7yb31v0gibgpzlb657bcravi1irfv1hhs";
+ }
+ else
+ fetchzip {
+ url = "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_darwin_amd64-${version}.zip";
+ sha256 = "0s8sqyc72lnc7dxd4cl559gyfx83x71jjpsld3i3nbp3mwwamczp";
+ };
+
+ buildInputs = [python27 makeWrapper];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/
+ cp -r "$src" "$out/share/go_appengine"
+
+ # create wrappers with correct env
+ for i in goapp go-app-stager *.py; do
+ makeWrapper "$out/share/go_appengine/$i" "$out/bin/$i" \
+ --prefix PATH : "${python27}/bin" \
+ --prefix PYTHONPATH : "$(toPythonPath ${cffi}):$(toPythonPath ${cryptography}):$(toPythonPath ${pyopenssl})"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Google App Engine SDK for Go";
+ version = version;
+ homepage = "https://cloud.google.com/appengine/docs/go/";
+ license = licenses.asl20;
+ platforms = ["x86_64-linux" "x86_64-darwin"];
+ maintainers = with maintainers; [ lufia ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/default.nix
new file mode 100644
index 000000000000..8d26ca7eb448
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gopkgs";
+ version = "2.1.2";
+
+ subPackages = [ "cmd/gopkgs" ];
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "uudashr";
+ repo = "gopkgs";
+ sha256 = "1jak1bg6k5iasscw68ra875k59k3iqhka2ykabsd427k1j3mypln";
+ };
+
+ vendorSha256 = "1pwsc488ldw039by8nqpni801zry7dnf0rx4hhd73xpv2w7s8n2r";
+
+ doCheck = false;
+
+ meta = {
+ description = "Tool to get list available Go packages";
+ homepage = "https://github.com/uudashr/gopkgs";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/deps.nix
new file mode 100644
index 000000000000..715c7bbbc824
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gopkgs/deps.nix
@@ -0,0 +1,21 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/karrick/godirwalk";
+ fetch = {
+ type = "git";
+ url = "https://github.com/karrick/godirwalk";
+ rev = "5cc8b3875be6c21825a1b54d3029ed415c93c4f7";
+ sha256 = "02nlyr0sa0lj1f27fsrxlspcsrx7fs60qwr33l5r6yq52axcikcd";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "645ef00459ed84a119197bfb8d8205042c6df63d";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gopls/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gopls/default.nix
new file mode 100644
index 000000000000..66582969714f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gopls/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchgit }:
+
+buildGoModule rec {
+ pname = "gopls";
+ version = "0.5.1";
+
+ src = fetchgit {
+ rev = "gopls/v${version}";
+ url = "https://go.googlesource.com/tools";
+ sha256 = "1vnidc8kaisdyprylsibddpdksm84c6qr528768yvi93crdmddls";
+ };
+
+ modRoot = "gopls";
+ vendorSha256 = "048qs6ygav8al3sz9vwf6fqaahkr8wr3dj1yd2jhr7c5h30n4rs2";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Official language server for the Go language";
+ homepage = "https://github.com/golang/tools/tree/master/gopls";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ mic92 zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gore/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gore/default.nix
new file mode 100644
index 000000000000..ca9c8d9eec0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gore/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gore";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "motemen";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "61Hn3Vs4BZtAX8WNJlUeodvEWvwLo+lXKsc8JxRwOE4=";
+ };
+
+ vendorSha256 = "3bq6sRKS5dq7WCPpKGm2q5gFajthR3zhrTFGve9zXhY=";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Yet another Go REPL that works nicely";
+ homepage = "https://github.com/motemen/gore";
+ license = licenses.mit;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gosec/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gosec/default.nix
new file mode 100644
index 000000000000..ffbd98a45772
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gosec/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "gosec";
+ version = "2.4.0";
+
+ subPackages = [ "cmd/gosec" ];
+
+ src = fetchFromGitHub {
+ owner = "securego";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0mqijzr3vj4wycykqpjz9xw9fhpbnzz988z2q3nldb5ax0pyrxca";
+ };
+
+ vendorSha256 = "063dpq1k5lykp18gshlgg098yvppicv3cz8gjn1mvfhac2rl9yqr";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version} -X main.GitTag=${src.rev} -X main.BuildDate=unknown" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/securego/gosec";
+ description = "Golang security checker";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kalbasit nilp0inter ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gotags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gotags/default.nix
new file mode 100644
index 000000000000..5499a22ec01b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gotags/default.nix
@@ -0,0 +1,15 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "gotags";
+ version = "20150803-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "be986a34e20634775ac73e11a5b55916085c48e7";
+
+ goPackagePath = "github.com/jstemmer/gotags";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/jstemmer/gotags";
+ sha256 = "071wyq90b06xlb3bb0l4qjz1gf4nnci4bcngiddfcxf2l41w1vja";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/default.nix
new file mode 100644
index 000000000000..43f221bd3241
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gotests";
+ version = "1.5.3";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/cweill/gotests";
+ excludedPackages = "testdata";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "cweill";
+ repo = "gotests";
+ sha256 = "1c0hly31ax0wk01zdx0l0yl40xybaizjfb3gjxia2z0mgx330dq9";
+ };
+
+ meta = {
+ description = "Generate Go tests from your source code";
+ homepage = "https://github.com/cweill/gotests";
+ maintainers = with stdenv.lib.maintainers; [ vdemeester ];
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/deps.nix
new file mode 100644
index 000000000000..df411303d944
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gotests/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "23463209683dad3f2b9cc7f7c2663e1847c59017";
+ sha256 = "1shzfl4zixhj78v4f6y04bcmfl705yr5q8hp72ndbbma0mh09g8f";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gotestsum/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gotestsum/default.nix
new file mode 100644
index 000000000000..71bccc74ce65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gotestsum/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "gotestsum";
+ version = "0.5.3";
+
+ src = fetchFromGitHub {
+ owner = "gotestyourself";
+ repo = "gotestsum";
+ rev = "v${version}";
+ sha256 = "1jq529m788yp3b6j4dhxgcw7qm1lyxx1ir2vwr41vp7gh17fmwar";
+ };
+
+ vendorSha256 = "1injixhllv41glb3yz276gjrkiwwkfimrhb367d2pvjpzqmhplan";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/gotestyourself/gotestsum";
+ description = "A human friendly `go test` runner";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ endocrimes ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gotools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gotools/default.nix
new file mode 100644
index 000000000000..11926b3b0c66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gotools/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, go, buildGoModule, fetchgit }:
+
+buildGoModule rec {
+ pname = "gotools-unstable";
+ version = "2020-04-21";
+ rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://go.googlesource.com/tools";
+ sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
+ };
+
+ # The gopls folder contains a Go submodule which causes a build failure.
+ # Given that, we can't have the gopls binary be part of the gotools
+ # derivation.
+ #
+ # The attribute "gopls" provides the gopls binary.
+ #
+ # Related
+ #
+ # * https://github.com/NixOS/nixpkgs/pull/85868
+ # * https://github.com/NixOS/nixpkgs/issues/88716
+ postPatch = ''
+ rm -rf gopls
+ '';
+
+ vendorSha256 = "0pplmqxrnc8qnr5708igx4dm7rb0hicvhg6lh5hj8zkx38nb19s0";
+
+ doCheck = false;
+
+ postConfigure = ''
+ # Make the builtin tools available here
+ mkdir -p $out/bin
+ eval $(go env | grep GOTOOLDIR)
+ find $GOTOOLDIR -type f | while read x; do
+ ln -sv "$x" "$out/bin"
+ done
+ export GOTOOLDIR=$out/bin
+ '';
+
+ excludedPackages = "\\("
+ + stdenv.lib.concatStringsSep "\\|" ([ "testdata" ] ++ stdenv.lib.optionals (stdenv.lib.versionAtLeast go.meta.branch "1.5") [ "vet" "cover" ])
+ + "\\)";
+
+ # Set GOTOOLDIR for derivations adding this to buildInputs
+ postInstall = ''
+ mkdir -p $out/nix-support
+ substitute ${../../go-modules/tools/setup-hook.sh} $out/nix-support/setup-hook \
+ --subst-var-by bin $out
+ '';
+
+ # Do not copy this without a good reason for enabling
+ # In this case tools is heavily coupled with go itself and embeds paths.
+ allowGoReference = true;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/govendor/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/govendor/default.nix
new file mode 100644
index 000000000000..804a9bf043ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/govendor/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "govendor";
+ version = "1.0.9";
+
+ goPackagePath = "github.com/kardianos/govendor";
+
+ src = fetchFromGitHub {
+ owner = "kardianos";
+ repo = "govendor";
+ rev = "v${version}";
+ sha256 = "0g02cd25chyijg0rzab4xr627pkvk5k33mscd6r0gf1v5xvadcfq";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/kardianos/govendor";
+ description = "Go vendor tool that works with the standard vendor file";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/govers/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/govers/default.nix
new file mode 100644
index 000000000000..ebce368ea9f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/govers/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "govers";
+ version = "20160623-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "77fd787551fc5e7ae30696e009e334d52d2d3a43";
+
+ goPackagePath = "github.com/rogpeppe/govers";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/rogpeppe/govers";
+ sha256 = "12w83vyi8mgn48fwdm2js693qcydimxapg8rk0yf01w0ab03r5wn";
+ };
+
+ dontRenameImports = true;
+
+ doCheck = false; # fails, silently
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gox/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gox/default.nix
new file mode 100644
index 000000000000..34e7d338318c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gox/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gox";
+ version = "1.0.1";
+
+ goPackagePath = "github.com/mitchellh/gox";
+
+ src = fetchFromGitHub {
+ owner = "mitchellh";
+ repo = "gox";
+ rev = "v${version}";
+ sha256 = "0mkh81hd7kn45dz7b6yhzqsg2mvg1g6pwx89jjigxrnqhyg9vrl7";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mitchellh/gox";
+ description = "A dead simple, no frills Go cross compile tool";
+ license = licenses.mpl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gpp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gpp/default.nix
new file mode 100644
index 000000000000..ee15df1a9f6f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gpp/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation {
+ pname = "gpp";
+ version = "2.25";
+
+ src = fetchFromGitHub {
+ owner = "logological";
+ repo = "gpp";
+ rev = "96c5dd8905384ea188f380f51d24cbd7fd58f642";
+ sha256 = "0bvhnx3yfhbfiqqhhz6k2a596ls5rval7ykbp3jl5b6062xj861b";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ installCheckPhase = "$out/bin/gpp --help";
+ doInstallCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "General-purpose preprocessor with customizable syntax";
+ homepage = "https://logological.org/gpp";
+ license = licenses.lgpl3;
+ maintainers = with maintainers; [ nmattia ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/grabserial/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/grabserial/default.nix
new file mode 100644
index 000000000000..ce336241b65d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/grabserial/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+ pname = "grabserial";
+ version = "2.0.2";
+
+ src = fetchFromGitHub {
+ owner = "tbird20d";
+ repo = "grabserial";
+ rev = "v${version}";
+ sha256 = "0ryk4w8q6zfmia71nwnk5b7xaxw0sf45dw9q50xp7k76i3k5f9f3";
+ };
+
+ propagatedBuildInputs = [ pythonPackages.pyserial ];
+
+ meta = with lib; {
+ description = "Python based serial dump and timing program";
+ homepage = "https://github.com/tbird20d/grabserial";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ vmandela ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gron/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gron/default.nix
new file mode 100644
index 000000000000..e0d2d3d1498f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gron/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "gron";
+ version = "0.6.0";
+
+ owner = "tomnomnom";
+ repo = "gron";
+ goPackagePath = "github.com/${owner}/${repo}";
+
+ src = fetchFromGitHub {
+ inherit owner repo;
+ rev = "v${version}";
+ sha256 = "05f3w4zr15wd7xk75l12y5kip4gnv719a2x9w2hy23q3pnss9wk0";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "Make JSON greppable!";
+ longDescription = ''
+ gron transforms JSON into discrete assignments to make it easier to grep
+ for what you want and see the absolute 'path' to it. It eases the
+ exploration of APIs that return large blobs of JSON but have terrible
+ documentation.
+ '';
+ homepage = "https://github.com/tomnomnom/gron";
+ license = licenses.mit;
+ maintainers = [ maintainers.fgaz ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gron/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gron/deps.nix
new file mode 100644
index 000000000000..effc255d877e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gron/deps.nix
@@ -0,0 +1,57 @@
+[
+ rec {
+ owner = "fatih";
+ repo = "color";
+ goPackagePath = "github.com/${owner}/${repo}";
+ fetch = {
+ type = "git";
+ url = "https://github.com/${owner}/${repo}";
+ rev = "v1.7.0";
+ sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+ };
+ }
+ rec {
+ owner = "nwidger";
+ repo = "jsoncolor";
+ goPackagePath = "github.com/${owner}/${repo}";
+ fetch = {
+ type = "git";
+ url = "https://github.com/${owner}/${repo}";
+ rev = "75a6de4340e59be95f0884b9cebdda246e0fdf40";
+ sha256 = "0aiv42xijrqgrxfx6pfyrndpwqv8i1qwsk190jdczyjxlnki2nki";
+ };
+ }
+ rec {
+ owner = "pkg";
+ repo = "errors";
+ goPackagePath = "github.com/${owner}/${repo}";
+ fetch = {
+ type = "git";
+ url = "https://github.com/${owner}/${repo}";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+ rec {
+ owner = "mattn";
+ repo = "go-colorable";
+ goPackagePath = "github.com/${owner}/${repo}";
+ fetch = {
+ type = "git";
+ url = "https://github.com/${owner}/${repo}";
+ rev = "v0.0.9";
+ sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+ };
+ }
+ rec {
+ owner = "mattn";
+ repo = "go-isatty";
+ goPackagePath = "github.com/${owner}/${repo}";
+ fetch = {
+ type = "git";
+ url = "https://github.com/${owner}/${repo}";
+ rev = "v0.0.4";
+ sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/gtk-mac-bundler/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/gtk-mac-bundler/default.nix
new file mode 100644
index 000000000000..df21f414ecb8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/gtk-mac-bundler/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "gtk-mac-bundler";
+ version = "0.7.4";
+
+ src = fetchFromGitHub {
+ owner = "GNOME";
+ repo = "gtk-mac-bundler";
+ rev = "bundler-${version}";
+ sha256 = "1kyyq2hc217i5vhbfff0ldgv0r3aziwryd1xlck5cw3s6hgskbza";
+ };
+
+ installPhase = ''
+ mkdir -p $out/bin
+ substitute gtk-mac-bundler.in $out/bin/gtk-mac-bundler \
+ --subst-var-by PATH $out/share
+ chmod a+x $out/bin/gtk-mac-bundler
+
+ mkdir -p $out/share
+ cp -r bundler $out/share
+ '';
+
+ meta = with lib; {
+ description = "a helper script that creates application bundles form GTK executables for macOS";
+ maintainers = [ maintainers.matthewbauer ];
+ platforms = platforms.darwin;
+ homepage = "https://wiki.gnome.org/Projects/GTK/OSX/Bundling";
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix
new file mode 100644
index 000000000000..15233979e158
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/guile/g-wrap/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, guile, guile-lib, libffi, pkgconfig, glib }:
+
+stdenv.mkDerivation rec {
+ pname = "g-wrap";
+ version = "1.9.15";
+
+ src = fetchurl {
+ url = "mirror://savannah/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "0ak0bha37dfpj9kmyw1r8fj8nva639aw5xr66wr5gd3l1rqf5xhg";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ # Note: Glib support is optional, but it's quite useful (e.g., it's used by
+ # Guile-GNOME).
+ buildInputs = [ guile glib guile-lib ];
+
+ propagatedBuildInputs = [ libffi ];
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "A wrapper generator for Guile";
+ longDescription = ''
+ G-Wrap is a tool (and Guile library) for generating function wrappers for
+ inter-language calls. It currently only supports generating Guile
+ wrappers for C functions.
+ '';
+ homepage = "https://www.nongnu.org/g-wrap/";
+ license = licenses.lgpl2Plus;
+ maintainers = with maintainers; [ vyp ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/guile/guile-lint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/guile/guile-lint/default.nix
new file mode 100644
index 000000000000..b8efb30f5f17
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/guile/guile-lint/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, guile }:
+
+stdenv.mkDerivation rec {
+ pname = "guile-lint";
+ version = "14";
+
+ src = fetchurl {
+ url = "https://download.tuxfamily.org/user42/${pname}-${version}.tar.bz2";
+ sha256 = "1gnhnmki05pkmzpbfc07vmb2iwza6vhy75y03bw2x2rk4fkggz2v";
+ };
+
+ buildInputs = [ guile ];
+
+ unpackPhase = ''tar xjvf "$src" && sourceRoot="$PWD/${pname}-${version}"'';
+
+ prePatch = ''
+ substituteInPlace guile-lint.in --replace \
+ "exec guile" "exec ${guile}/bin/guile"
+ '';
+
+ doCheck = !stdenv.isDarwin;
+
+ meta = with stdenv.lib; {
+ description = "Checks syntax and semantics in a Guile program or module";
+ homepage = "https://user42.tuxfamily.org/guile-lint/index.html";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ vyp ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/halfempty/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/halfempty/default.nix
new file mode 100644
index 000000000000..e576b2321c69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/halfempty/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, pkgconfig, glib, utillinux, scowl }:
+
+stdenv.mkDerivation rec {
+ pname = "halfempty";
+ version = "0.30";
+
+ src = fetchFromGitHub {
+ owner = "googleprojectzero";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0838pw0ccjvlxmjygzrnppz1fx1a10vjzdgjbxgb4wgpqjr8v6vc";
+ };
+
+ nativeBuildInputs = [ pkgconfig utillinux ];
+ buildInputs = [ glib ];
+
+ enableParallelBuilding = true;
+
+ postPatch = ''
+ substituteInPlace test/Makefile \
+ --replace '/usr/share/dict/words' '${scowl}/share/dict/words.txt'
+ '';
+
+ installPhase = ''
+ install -vDt $out/bin halfempty
+ '';
+
+ doCheck = true;
+ checkTarget = "test";
+
+ meta = {
+ description = "Fast, parallel test case minimization tool";
+ homepage = "https://github.com/googleprojectzero/halfempty/";
+ maintainers = with lib.maintainers; [ fpletz ];
+ license = with lib.licenses; [ asl20 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
new file mode 100644
index 000000000000..60b9ba3e0e45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, containers, fetchgit, hedgehog
+, optparse-applicative, parsec, stdenv, template-haskell, text
+}:
+mkDerivation {
+ pname = "dconf2nix";
+ version = "0.0.6";
+ src = fetchgit {
+ url = "https://github.com/gvolpe/dconf2nix.git";
+ sha256 = "0ql3xrr05kg1xrfxq86mhzh5ky33sngx57sahzck3rb8fv2g6amv";
+ rev = "cf976e033c1a89f897924baa219c3b227fe68489";
+ fetchSubmodules = true;
+ };
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ base containers optparse-applicative parsec text
+ ];
+ executableHaskellDepends = [ base ];
+ testHaskellDepends = [
+ base containers hedgehog parsec template-haskell text
+ ];
+ description = "Convert dconf files to Nix, as expected by Home Manager";
+ license = stdenv.lib.licenses.asl20;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix
new file mode 100644
index 000000000000..cfd391866ee3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix
@@ -0,0 +1,32 @@
+{ haskell, haskellPackages, lib, runCommand }:
+
+let
+ dconf2nix =
+ haskell.lib.justStaticExecutables
+ (haskell.lib.overrideCabal haskellPackages.dconf2nix (oldAttrs: {
+ maintainers = (oldAttrs.maintainers or []) ++ [
+ lib.maintainers.gvolpe
+ ];
+ }));
+in
+
+dconf2nix.overrideAttrs (oldAttrs: {
+ passthru = (oldAttrs.passthru or {}) // {
+ updateScript = ./update.sh;
+
+ # These tests can be run with the following command.
+ #
+ # $ nix-build -A dconf2nix.passthru.tests
+ tests =
+ runCommand
+ "dconf2nix-tests"
+ {
+ nativeBuildInputs = [
+ dconf2nix
+ ];
+ }
+ ''
+ dconf2nix > $out
+ '';
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh
new file mode 100755
index 000000000000..8129824e256b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq
+#
+# This script will update the dconf2nix derivation to the latest version using
+# cabal2nix.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# dconf2nix derivation created with cabal2nix.
+dconf2nix_derivation_file="${script_dir}/dconf2nix.nix"
+
+# This is the current revision of dconf2nix in Nixpkgs.
+old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$dconf2nix_derivation_file")"
+
+# This is the latest release version of dconf2nix on GitHub.
+new_version=$(curl --silent "https://api.github.com/repos/gvolpe/dconf2nix/releases" | jq '.[0].tag_name' --raw-output)
+
+echo "Updating dconf2nix from old version $old_version to new version $new_version."
+echo "Running cabal2nix and outputting to ${dconf2nix_derivation_file}..."
+
+cabal2nix --revision "$new_version" "https://github.com/gvolpe/dconf2nix.git" > "$dconf2nix_derivation_file"
+
+echo "Finished."
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix
new file mode 100644
index 000000000000..0c1b6d0dbcca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix
@@ -0,0 +1,50 @@
+{ mkDerivation, aeson, base, binary, blaze-markup, brittany
+, bytestring, containers, data-default, deepseq, directory, extra
+, fetchgit, filepath, fingertree, floskell, fourmolu, ghc
+, ghc-boot-th, ghc-exactprint, ghc-paths, ghc-source-gen, ghcide
+, gitrev, hashable, haskell-lsp, hie-bios, hls-plugin-api, hslogger
+, hspec, hspec-core, lens, lsp-test, mtl, optparse-applicative
+, optparse-simple, ormolu, process, refinery, regex-tdfa, retrie
+, safe-exceptions, shake, stdenv, stm, stylish-haskell, syb, tasty
+, tasty-ant-xml, tasty-expected-failure, tasty-golden, tasty-hunit
+, tasty-rerun, temporary, text, time, transformers
+, unordered-containers, yaml
+}:
+mkDerivation {
+ pname = "haskell-language-server";
+ version = "0.5.0.0";
+ src = fetchgit {
+ url = "https://github.com/haskell/haskell-language-server.git";
+ sha256 = "1qi762fa72487i8fspxmr8xizm9n2s1shxsvnvsl67vj9if573r9";
+ rev = "3ca2a6cd267f373aae19f59e1cf9e04b6524eff3";
+ fetchSubmodules = true;
+ };
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ base containers data-default directory extra filepath ghc ghcide
+ gitrev haskell-lsp hie-bios hls-plugin-api hslogger
+ optparse-applicative optparse-simple process text
+ unordered-containers
+ ];
+ executableHaskellDepends = [
+ aeson base binary brittany bytestring containers deepseq directory
+ extra filepath fingertree floskell fourmolu ghc ghc-boot-th
+ ghc-exactprint ghc-paths ghc-source-gen ghcide gitrev hashable
+ haskell-lsp hie-bios hls-plugin-api hslogger lens mtl
+ optparse-applicative optparse-simple ormolu process refinery
+ regex-tdfa retrie safe-exceptions shake stylish-haskell syb
+ temporary text time transformers unordered-containers
+ ];
+ testHaskellDepends = [
+ aeson base blaze-markup bytestring containers data-default
+ directory extra filepath haskell-lsp hie-bios hls-plugin-api
+ hslogger hspec hspec-core lens lsp-test process stm tasty
+ tasty-ant-xml tasty-expected-failure tasty-golden tasty-hunit
+ tasty-rerun temporary text transformers unordered-containers yaml
+ ];
+ testToolDepends = [ ghcide ];
+ homepage = "https://github.com/haskell/haskell-language-server#readme";
+ description = "LSP server for GHC";
+ license = stdenv.lib.licenses.asl20;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
new file mode 100644
index 000000000000..0519cf42dd8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, aeson, base, butcher, bytestring, cmdargs
+, containers, czipwith, data-tree-print, deepseq, directory, extra
+, fetchgit, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
+, hspec, monad-memo, mtl, multistate, parsec, pretty, random, safe
+, semigroups, stdenv, strict, syb, text, transformers, uniplate
+, unsafe, yaml
+}:
+mkDerivation {
+ pname = "brittany";
+ version = "0.12.1.1";
+ src = fetchgit {
+ url = "https://github.com/bubba/brittany";
+ sha256 = "1rkk09f8750qykrmkqfqbh44dbx1p8aq1caznxxlw8zqfvx39cxl";
+ rev = "c59655f10d5ad295c2481537fc8abf0a297d9d1c";
+ fetchSubmodules = true;
+ };
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ aeson base butcher bytestring cmdargs containers czipwith
+ data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+ ghc-exactprint ghc-paths monad-memo mtl multistate pretty random
+ safe semigroups strict syb text transformers uniplate unsafe yaml
+ ];
+ executableHaskellDepends = [ base ];
+ testHaskellDepends = [
+ aeson base butcher bytestring cmdargs containers czipwith
+ data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+ ghc-exactprint ghc-paths hspec monad-memo mtl multistate parsec
+ pretty safe semigroups strict syb text transformers uniplate unsafe
+ yaml
+ ];
+ homepage = "https://github.com/lspitzner/brittany/";
+ description = "Haskell source code formatter";
+ license = stdenv.lib.licenses.agpl3;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
new file mode 100644
index 000000000000..450c665bef85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
@@ -0,0 +1,60 @@
+{ mkDerivation, aeson, array, async, base, base16-bytestring
+, binary, bytestring, Chart, Chart-diagrams, containers
+, cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+, directory, extra, fetchgit, filepath, fingertree, fuzzy, ghc
+, ghc-boot, ghc-boot-th, ghc-check, ghc-paths
+, ghc-typelits-knownnat, gitrev, Glob, haddock-library, hashable
+, haskell-lsp, haskell-lsp-types, hie-bios, hslogger
+, implicit-hie-cradle, lens, lsp-test, mtl, network-uri
+, optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+, process, QuickCheck, quickcheck-instances
+, record-dot-preprocessor, record-hasfield, regex-tdfa
+, rope-utf16-splay, safe, safe-exceptions, shake, sorted-list
+, stdenv, stm, syb, tasty, tasty-expected-failure, tasty-hunit
+, tasty-quickcheck, tasty-rerun, text, time, transformers, unix
+, unordered-containers, utf8-string, yaml
+}:
+mkDerivation {
+ pname = "ghcide";
+ version = "0.4.0";
+ src = fetchgit {
+ url = "https://github.com/haskell/ghcide";
+ sha256 = "0zv14mvfhmwwkhyzkr38qpvyffa8ywzp41lr1k55pbrc5b10fjr6";
+ rev = "0bfce3114c28bd00f7bf5729c32ec0f23a8d8854";
+ fetchSubmodules = true;
+ };
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ aeson array async base base16-bytestring binary bytestring
+ containers cryptohash-sha1 data-default deepseq directory extra
+ filepath fingertree fuzzy ghc ghc-boot ghc-boot-th ghc-check
+ ghc-paths Glob haddock-library hashable haskell-lsp
+ haskell-lsp-types hie-bios hslogger implicit-hie-cradle mtl
+ network-uri prettyprinter prettyprinter-ansi-terminal regex-tdfa
+ rope-utf16-splay safe safe-exceptions shake sorted-list stm syb
+ text time transformers unix unordered-containers utf8-string
+ ];
+ executableHaskellDepends = [
+ aeson base bytestring containers data-default directory extra
+ filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+ lens lsp-test optparse-applicative process safe-exceptions text
+ unordered-containers
+ ];
+ testHaskellDepends = [
+ aeson base binary bytestring containers directory extra filepath
+ ghc ghc-typelits-knownnat haddock-library haskell-lsp
+ haskell-lsp-types lens lsp-test network-uri optparse-applicative
+ process QuickCheck quickcheck-instances record-dot-preprocessor
+ record-hasfield rope-utf16-splay safe safe-exceptions shake tasty
+ tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
+ text
+ ];
+ benchmarkHaskellDepends = [
+ aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+ extra filepath shake text yaml
+ ];
+ homepage = "https://github.com/haskell/ghcide#readme";
+ description = "The core of an IDE";
+ license = stdenv.lib.licenses.asl20;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh
new file mode 100755
index 000000000000..fd22a80126d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh
@@ -0,0 +1,71 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix jq curl
+#
+# This script will update the haskell-language-server derivation to the latest version using
+# cabal2nix.
+#
+# Note that you should always try building haskell-language-server after updating it here, since
+# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
+# need to be updated/changed.
+#
+# Remember to split out different updates into multiple commits
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# ===========================
+# ghcide fork on https://github.com/wz1000/ghcide
+# ===========================
+
+# ghcide derivation created with cabal2nix.
+ghcide_derivation_file="${script_dir}/hls-ghcide.nix"
+
+# This is the current revision of hls in Nixpkgs.
+ghcide_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$ghcide_derivation_file")"
+
+# This is the revision of ghcide used by hls on GitHub.
+ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/contents/ghcide" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server's ghcide from old version $ghcide_old_version to new version $ghcide_new_version."
+echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
+
+cabal2nix --revision "$ghcide_new_version" "https://github.com/haskell/ghcide" > "$ghcide_derivation_file"
+
+# ===========================
+# HLS maintainer's Brittany fork
+# ===========================
+
+# brittany derivation created with cabal2nix.
+brittany_derivation_file="${script_dir}/hls-brittany.nix"
+
+# This is the current revision of the brittany fork in Nixpkgs.
+brittany_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$brittany_derivation_file")"
+
+brittany_new_version=$(curl --silent "https://api.github.com/repos/bubba/brittany/commits/ghc-8.10.1" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server's brittany from old version $brittany_old_version to new version $brittany_new_version."
+echo "Running cabal2nix and outputting to ${brittany_derivation_file}..."
+
+cabal2nix --revision "$brittany_new_version" "https://github.com/bubba/brittany" > "$brittany_derivation_file"
+
+# ===========================
+# HLS
+# ===========================
+
+# hls derivation created with cabal2nix.
+hls_derivation_file="${script_dir}/default.nix"
+
+# This is the current revision of hls in Nixpkgs.
+hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"
+
+# This is the latest release version of hls on GitHub.
+hls_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server from old version $hls_old_version to new version $hls_new_version."
+echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
+
+cabal2nix --revision "$hls_new_version" "https://github.com/haskell/haskell-language-server.git" > "$hls_derivation_file"
+
+echo "Finished."
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
new file mode 100644
index 000000000000..09cb60901e43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/withWrapper.nix
@@ -0,0 +1,58 @@
+{ lib, supportedGhcVersions ? [ "865" "884" "8102" ], stdenv, haskellPackages
+, haskell }:
+#
+# The recommended way to override this package is
+#
+# pkgs.haskell-language-server.override { supportedGhcVersions = [ "901" ]; }
+#
+# for example. Read more about this in the haskell-language-server section of the nixpkgs manual.
+#
+let
+ inherit (lib) concatStringsSep concatMapStringsSep take splitString;
+ getPackages = version: haskell.packages."ghc${version}";
+ getMajorVersion = packages:
+ concatStringsSep "." (take 2 (splitString "." packages.ghc.version));
+ tunedHls = hsPkgs:
+ haskell.lib.justStaticExecutables
+ (haskell.lib.overrideCabal hsPkgs.haskell-language-server (old: {
+ postInstall = ''
+ remove-references-to -t ${hsPkgs.ghc} $out/bin/haskell-language-server
+ remove-references-to -t ${hsPkgs.shake.data} $out/bin/haskell-language-server
+ remove-references-to -t ${hsPkgs.js-jquery.data} $out/bin/haskell-language-server
+ remove-references-to -t ${hsPkgs.js-dgtable.data} $out/bin/haskell-language-server
+ remove-references-to -t ${hsPkgs.js-flot.data} $out/bin/haskell-language-server
+ '';
+ }));
+ targets = version:
+ let packages = getPackages version;
+ in [
+ "haskell-language-server-${packages.ghc.version}"
+ "haskell-language-server-${getMajorVersion packages}"
+ ];
+ makeSymlinks = version:
+ concatMapStringsSep "\n" (x:
+ "ln -s ${
+ tunedHls (getPackages version)
+ }/bin/haskell-language-server $out/bin/${x}") (targets version);
+ pkg = tunedHls haskellPackages;
+in stdenv.mkDerivation {
+ pname = "haskell-language-server";
+ version = haskellPackages.haskell-language-server.version;
+ buildCommand = ''
+ mkdir -p $out/bin
+ ln -s ${pkg}/bin/haskell-language-server $out/bin/haskell-language-server
+ ln -s ${pkg}/bin/haskell-language-server-wrapper $out/bin/haskell-language-server-wrapper
+ ${concatMapStringsSep "\n" makeSymlinks supportedGhcVersions}
+ '';
+ meta = haskellPackages.haskell-language-server.meta // {
+ maintainers = [ lib.maintainers.maralorn ];
+ longDescription = ''
+ This package provides haskell-language-server, haskell-language-server-wrapper, ${
+ concatMapStringsSep ", " (x: concatStringsSep ", " (targets x))
+ supportedGhcVersions
+ }.
+
+ You can override the list supportedGhcVersions.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
new file mode 100644
index 000000000000..df889d43d463
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, jshon, electron_3
+, runtimeShell, hyper-haskell-server, extra-packages ? [] }:
+
+let
+ binPath = stdenv.lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
+ electron = electron_3;
+in stdenv.mkDerivation rec {
+ pname = "hyper-haskell";
+ version = "0.1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "HeinrichApfelmus";
+ repo = "hyper-haskell";
+ rev = "v${version}";
+ sha256 = "1k38h7qx12z7463z8466pji0nwfkp4qkg7q83kns2mzmwmw5jnmb";
+ };
+
+ propagatedBuildInputs = extra-packages;
+
+ buildCommand = ''
+ mkdir -p $out/bin $out/share/hyper-haskell/worksheets $out/share/applications $out/share/icons/hicolor/scalable/apps $out/share/mime/packages
+
+ # Electron app
+ cp -R $src/app $out
+
+ # Desktop Launcher
+ cp $src/resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
+ cp $src/resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
+ cp $src/resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
+
+ # install example worksheets with backend set to nix
+ for worksheet in "$src/worksheets/"*.hhs; do
+ ${jshon}/bin/jshon -e settings -s nix -i packageTool -p < $worksheet > $out/share/hyper-haskell/worksheets/`basename $worksheet`
+ done
+
+ # install electron wrapper script
+ cat > $out/bin/hyper-haskell <<EOF
+ #!${runtimeShell}
+ export PATH="${binPath}:\$PATH"
+ exec ${electron}/bin/electron $out/app "\$@"
+ EOF
+ chmod 755 $out/bin/hyper-haskell
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The strongly hyped graphical interpreter for the Haskell programming language";
+ homepage = "https://github.com/HeinrichApfelmus/hyper-haskell";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.rvl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
new file mode 100644
index 000000000000..47a9c550fa8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
@@ -0,0 +1,21 @@
+{ stdenv, ghcWithPackages, makeWrapper, packages }:
+
+let
+hyperHaskellEnv = ghcWithPackages (self: [ self.hyper-haskell-server ] ++ packages self);
+in stdenv.mkDerivation {
+ name = "hyper-haskell-server-with-packages-${hyperHaskellEnv.version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin
+ makeWrapper ${hyperHaskellEnv}/bin/hyper-haskell-server $out/bin/hyper-haskell-server \
+ --set NIX_GHC ${hyperHaskellEnv}/bin/ghc \
+ --set NIX_GHCPKG ${hyperHaskellEnv}/bin/ghc-pkg \
+ --set NIX_GHC_LIBDIR ${hyperHaskellEnv}/lib/ghc-*
+ '';
+
+ # trivial derivation
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
new file mode 100644
index 000000000000..60f8c2ecb252
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
@@ -0,0 +1,28 @@
+{ stdenv, writeScriptBin, makeWrapper, buildEnv, haskell, ghcWithPackages, jupyter, packages }:
+let
+ ihaskellEnv = ghcWithPackages (self: [
+ self.ihaskell
+ (haskell.lib.doJailbreak self.ihaskell-blaze)
+ (haskell.lib.doJailbreak self.ihaskell-diagrams)
+ (haskell.lib.doJailbreak self.ihaskell-display)
+ ] ++ packages self);
+ ihaskellSh = writeScriptBin "ihaskell-notebook" ''
+ #! ${stdenv.shell}
+ export GHC_PACKAGE_PATH="$(echo ${ihaskellEnv}/lib/*/package.conf.d| tr ' ' ':'):$GHC_PACKAGE_PATH"
+ export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}''${PATH:+:}$PATH"
+ ${ihaskellEnv}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
+ '';
+in
+buildEnv {
+ name = "ihaskell-with-packages";
+ buildInputs = [ makeWrapper ];
+ paths = [ ihaskellEnv jupyter ];
+ postBuild = ''
+ ln -s ${ihaskellSh}/bin/ihaskell-notebook $out/bin/
+ for prg in $out/bin"/"*;do
+ if [[ -f $prg && -x $prg ]]; then
+ wrapProgram $prg --set PYTHONPATH "$(echo ${jupyter}/lib/*/site-packages)"
+ fi
+ done
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/custom-config.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/custom-config.patch
new file mode 100644
index 000000000000..db467f8dd29b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/custom-config.patch
@@ -0,0 +1,49 @@
+diff --git a/src/Main.hs b/src/Main.hs
+index 61da2f3..39e5c9b 100644
+--- a/src/Main.hs
++++ b/src/Main.hs
+@@ -73,11 +73,14 @@ main = do
+ config' <- sequence config
+ dir <- P.getDataDir
+ exitWith <=< lambdabotMain modulesInfo $
+- [dataDir ==> dir, lbVersion ==> P.version] ++ config'
++ [dataDir ==> dir, lbVersion ==> P.version] ++ configInfo ++ config'
+
+ -- special online target for ghci use
+ online :: [String] -> IO ()
+ online strs = do
+ dir <- P.getDataDir
+- void $ lambdabotMain modulesInfo
+- [dataDir ==> dir, lbVersion ==> P.version, onStartupCmds ==> strs]
++ void $ lambdabotMain modulesInfo $
++ [dataDir ==> dir, lbVersion ==> P.version, onStartupCmds ==> strs] ++ configInfo
++
++configInfo :: [DSum Config Identity]
++configInfo = @config@
+diff --git a/src/Modules.hs b/src/Modules.hs
+index 036ea1f..eaafa50 100644
+--- a/src/Modules.hs
++++ b/src/Modules.hs
+@@ -14,10 +14,15 @@ import Lambdabot.Plugin.Reference
+ import Lambdabot.Plugin.Social
+
+ modulesInfo :: Modules
+-modulesInfo = $(modules $ corePlugins
+- ++ haskellPlugins
+- ++ ["irc", "localtime", "topic"] -- ircPlugins
+- ++ ["dummy", "fresh", "todo"] -- miscPlugins
+- ++ ["bf", "dice", "elite", "filter", "quote", "slap", "unlambda", "vixen"] -- noveltyPlugins
+- ++ referencePlugins
+- ++ socialPlugins)
++modulesInfo =
++ $(modules $
++ let oldDefaultModules =
++ corePlugins
++ ++ haskellPlugins
++ ++ ["irc", "localtime", "topic"] -- ircPlugins
++ ++ ["dummy", "fresh", "todo"] -- miscPlugins
++ ++ ["bf", "dice", "elite", "filter", "quote", "slap", "unlambda", "vixen"] -- noveltyPlugins
++ ++ referencePlugins
++ ++ socialPlugins
++ in @modules@
++ )
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/default.nix
new file mode 100644
index 000000000000..5e372b4f3874
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/lambdabot/default.nix
@@ -0,0 +1,41 @@
+{ lib, haskellLib, makeWrapper, haskellPackages
+, mueval
+, withDjinn ? true
+, aspell ? null
+, packages ? (pkgs: [])
+, modules ? "oldDefaultModules"
+, configuration ? "[]"
+}:
+
+let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ packages pkgs;
+ mueval' = mueval.override {
+ inherit haskellPackages;
+ packages = allPkgs;
+ };
+ bins = lib.makeBinPath ([ mueval'
+ (haskellPackages.ghcWithHoogle allPkgs)
+ haskellPackages.unlambda
+ haskellPackages.brainfuck
+ ]
+ ++ lib.optional withDjinn haskellPackages.djinn
+ ++ lib.optional (aspell != null) aspell
+ );
+ modulesStr = lib.replaceChars ["\n"] [" "] modules;
+ configStr = lib.replaceChars ["\n"] [" "] configuration;
+
+in haskellLib.overrideCabal haskellPackages.lambdabot (self: {
+ patches = (self.patches or []) ++ [ ./custom-config.patch ];
+ postPatch = (self.postPatch or "") + ''
+ substituteInPlace src/Main.hs \
+ --replace '@config@' '${configStr}'
+ substituteInPlace src/Modules.hs \
+ --replace '@modules@' '${modulesStr}'
+ '';
+
+ buildTools = (self.buildTools or []) ++ [ makeWrapper ];
+
+ postInstall = (self.postInstall or "") + ''
+ wrapProgram $out/bin/lambdabot \
+ --prefix PATH ":" '${bins}'
+ '';
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix
new file mode 100644
index 000000000000..3b4a6406f703
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/mueval/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, makeWrapper, haskellPackages, packages ? (pkgs: [])
+}:
+
+let defaultPkgs = pkgs: [ pkgs.show
+ pkgs.simple-reflect
+ pkgs.QuickCheck
+ pkgs.mtl
+ ];
+ env = haskellPackages.ghcWithPackages
+ (pkgs: defaultPkgs pkgs ++ packages pkgs);
+ libDir = "${env}/lib/ghc-${env.version}";
+
+in stdenv.mkDerivation {
+ name = "mueval-env";
+
+ inherit (haskellPackages) mueval;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin
+
+ makeWrapper $mueval/bin/mueval $out/bin/mueval \
+ --prefix PATH ":" "$out/bin"
+
+ makeWrapper $mueval/bin/mueval-core $out/bin/mueval \
+ --set "NIX_GHC_LIBDIR" "${libDir}"
+
+ '';
+
+ passthru = { inherit defaultPkgs; };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/vaultenv/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/vaultenv/default.nix
new file mode 100644
index 000000000000..1d901cb723cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/vaultenv/default.nix
@@ -0,0 +1,42 @@
+{ mkDerivation, async, base, bytestring, connection, containers
+, directory, hpack, hspec, hspec-discover, hspec-expectations
+, http-client, http-conduit, lens, lens-aeson, megaparsec, mtl
+, optparse-applicative, parser-combinators, retry, stdenv, text
+, unix, unordered-containers, utf8-string, fetchzip, dotenv
+}:
+mkDerivation rec {
+ pname = "vaultenv";
+ version = "0.13.1";
+
+ src = fetchzip {
+ url = "https://github.com/channable/vaultenv/archive/v${version}.tar.gz";
+ sha256 = "0ycf5skxjns77sgbm8faq9ps9rs2hqznsbzrd51hdkpak56k42cp";
+ };
+
+ buildTools = [ hpack ];
+
+ prePatch = ''
+ substituteInPlace package.yaml \
+ --replace -Werror ""
+ '';
+
+ isLibrary = false;
+ isExecutable = true;
+ executableHaskellDepends = [
+ async base bytestring connection containers http-client
+ http-conduit lens lens-aeson megaparsec mtl optparse-applicative
+ parser-combinators retry text unix unordered-containers utf8-string
+ dotenv
+ ];
+ testHaskellDepends = [
+ async base bytestring connection containers directory hspec
+ hspec-discover hspec-expectations http-client http-conduit lens
+ lens-aeson megaparsec mtl optparse-applicative parser-combinators
+ retry text unix unordered-containers utf8-string
+ ];
+ preConfigure = "hpack";
+ homepage = "https://github.com/channable/vaultenv#readme";
+ description = "Runs processes with secrets from HashiCorp Vault";
+ license = stdenv.lib.licenses.bsd3;
+ maintainers = with stdenv.lib.maintainers; [ lnl7 manveru ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/hcloud/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/hcloud/default.nix
new file mode 100644
index 000000000000..704477421ceb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/hcloud/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "hcloud";
+ version = "1.19.1";
+
+ src = fetchFromGitHub {
+ owner = "hetznercloud";
+ repo = "cli";
+ rev = "v${version}";
+ sha256 = "0iq04jfqvmwlm6947kzz4c3a33lvwxvj42z179rc3126b5v7bq54";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ vendorSha256 = "1svwrb5wyz5d8fgx36bpypnfq4hmpfxyd197cla9wnqpbkia7n5r";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
+
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/hcloud completion $shell > hcloud.$shell
+ installShellCompletion hcloud.$shell
+ done
+ '';
+
+ meta = {
+ description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
+ homepage = "https://github.com/hetznercloud/cli";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.zauberpony ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/heroku/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/heroku/default.nix
new file mode 100644
index 000000000000..e1aee1e28ca7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/heroku/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchurl, makeWrapper, nodejs }:
+
+stdenv.mkDerivation rec {
+ pname = "heroku";
+ version = "7.45.0";
+
+ src = fetchurl {
+ url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
+ sha256 = "0yxwy7ldi4r7r03a9ay7ikawfwa11x7lvldjskm7nl4a1g4i3jqi";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share/heroku $out/bin
+ cp -pr * $out/share/heroku
+ substituteInPlace $out/share/heroku/bin/run \
+ --replace "/usr/bin/env node" "${nodejs}/bin/node"
+ makeWrapper $out/share/heroku/bin/run $out/bin/heroku \
+ --set HEROKU_DISABLE_AUTOUPDATE 1
+ '';
+
+ meta = {
+ homepage = "https://devcenter.heroku.com/articles/heroku-cli";
+ description = "Everything you need to get started using Heroku";
+ maintainers = with lib.maintainers; [ aflatter mirdhyn peterhoeg marsam ];
+ license = lib.licenses.mit;
+ platforms = with lib.platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/hexio/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/hexio/default.nix
new file mode 100644
index 000000000000..116e7c3a5ced
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/hexio/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, python, pcsclite, pth }:
+
+stdenv.mkDerivation rec {
+ pname = "hexio";
+ version = "1.0-RC1";
+
+ src = fetchFromGitHub {
+ sha256 = "08jxkdi0gjsi8s793f9kdlad0a58a0xpsaayrsnpn9bpmm5cgihq";
+ rev = "version-${version}";
+ owner = "vanrein";
+ repo = "hexio";
+ };
+
+ propagatedBuildInputs = [ python ];
+ buildInputs = [ pcsclite pth ];
+
+ patchPhase = ''
+ substituteInPlace Makefile \
+ --replace '-I/usr/local/include/PCSC/' '-I${stdenv.lib.getDev pcsclite}/include/PCSC/' \
+ --replace '-L/usr/local/lib/pth' '-I${pth}/lib/'
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib $out/sbin $out/man
+ make DESTDIR=$out PREFIX=/ all
+ make DESTDIR=$out PREFIX=/ install
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Low-level I/O helpers for hexadecimal, tty/serial devices and so on";
+ homepage = "https://github.com/vanrein/hexio";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/hobbes/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/hobbes/default.nix
new file mode 100644
index 000000000000..5fd9d314c5e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/hobbes/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, cmake, llvm_6, ncurses, readline, zlib }:
+
+stdenv.mkDerivation {
+ name = "hobbes";
+ version = "unstable-2020-05-19";
+
+ src = fetchFromGitHub {
+ owner = "morgan-stanley";
+ repo = "hobbes";
+ rev = "3d80a46b44a362a97a6b963a2bf788fd1f67ade1";
+ sha256 = "03m915g3283z2nfdr03dj5k76wn917knfqxb0xj3qinbl4cka2p1";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ ];
+
+ buildInputs = [
+ llvm_6 # LLVM 6 is latest currently supported. See https://git.io/JvK6w.
+ ncurses
+ readline
+ zlib
+ ];
+
+ doCheck = false; # Running tests in NixOS hangs. See https://git.io/JvK7R.
+ checkTarget = "test";
+
+ meta = with stdenv.lib; {
+ description = "A language and an embedded JIT compiler";
+ longDescription = ''
+ Hobbes is a a language, embedded compiler, and runtime for efficient
+ dynamic expression evaluation, data storage and analysis.
+ '';
+ homepage = "https://github.com/Morgan-Stanley/hobbes";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ kthielen thmzlt ];
+ platforms = [ "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/2.1.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/2.1.nix
new file mode 100644
index 000000000000..f36e2e48fdfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/2.1.nix
@@ -0,0 +1,33 @@
+{ stdenv, makeWrapper, requireFile, gcc, unzip }:
+with stdenv.lib;
+
+# v2.1: last version with NHM/WSM arch support
+stdenv.mkDerivation {
+ name = "iaca-2.1";
+ src = requireFile {
+ name = "iaca-version-2.1-lin64.zip";
+ sha256 = "11s1134ijf66wrc77ksky9mnb0lq6ml6fzmr86a6p6r5xclzay2m";
+ url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download";
+ };
+ unpackCmd = ''${unzip}/bin/unzip "$src" -x __MACOSX/ __MACOSX/iaca-lin64/ __MACOSX/iaca-lin64/._.DS_Store'';
+ nativeBuildInputs = [ makeWrapper ];
+ installPhase = ''
+ mkdir -p $out/bin $out/lib
+ cp bin/iaca $out/bin/
+ cp lib/* $out/lib
+ '';
+ preFixup = let libPath = makeLibraryPath [ stdenv.cc.cc.lib gcc ]; in ''
+ patchelf \
+ --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 \
+ --set-rpath $out/lib:"${libPath}" \
+ $out/bin/iaca
+ '';
+ postFixup = ''wrapProgram $out/bin/iaca --set LD_LIBRARY_PATH $out/lib'';
+ meta = {
+ description = "Intel Architecture Code Analyzer";
+ homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ kazcw ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/3.0.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/3.0.nix
new file mode 100644
index 000000000000..f03f53544223
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/iaca/3.0.nix
@@ -0,0 +1,24 @@
+{ stdenv, requireFile, unzip }:
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ name = "iaca-3.0";
+ src = requireFile {
+ name = "iaca-version-v3.0-lin64.zip";
+ sha256 = "0qd81bxg269cwwvfmdp266kvhcl3sdvhrkfqdrbmanawk0w7lvp1";
+ url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download";
+ };
+ unpackCmd = ''${unzip}/bin/unzip "$src"'';
+ installPhase = ''
+ mkdir -p $out/bin
+ cp iaca $out/bin
+ patchelf --set-interpreter ${stdenv.glibc}/lib/ld-linux-x86-64.so.2 $out/bin/iaca
+ '';
+ meta = {
+ description = "Intel Architecture Code Analyzer";
+ homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ kazcw ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/icestorm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/icestorm/default.nix
new file mode 100644
index 000000000000..15ca059a8802
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/icestorm/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, libftdi1
+, python3, pypy3
+
+# PyPy yields large improvements in build time and runtime performance,
+# and IceStorm isn't intended to be used as a library other than by the
+# nextpnr build process (which is also sped up by using PyPy), so we
+# use it by default. See 18839e1 for more details.
+, usePyPy ? stdenv.hostPlatform.system == "x86_64-linux"
+}:
+
+stdenv.mkDerivation rec {
+ pname = "icestorm";
+ version = "2020.08.19";
+
+ passthru = rec {
+ pythonPkg = if usePyPy then pypy3 else python3;
+ pythonInterp = pythonPkg.interpreter;
+ };
+
+ src = fetchFromGitHub {
+ owner = "YosysHQ";
+ repo = "icestorm";
+ rev = "da52117ccd5b4147f64dc7345357ec5439cd7543";
+ sha256 = "072bl3vmvb06ry0ci3b1sfjpm3iigb874khzja4azcai969ybp4k";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ passthru.pythonPkg libftdi1 ];
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ # fix icebox_vlog chipdb path. icestorm issue:
+ # https://github.com/cliffordwolf/icestorm/issues/125
+ #
+ # also, fix up the path to the chosen Python interpreter. for pypy-compatible
+ # platforms, it offers significant performance improvements.
+ patchPhase = ''
+ substituteInPlace ./icebox/icebox_vlog.py \
+ --replace /usr/local/share "$out/share"
+
+ for x in icefuzz/Makefile icebox/Makefile icetime/Makefile; do
+ substituteInPlace "$x" --replace python3 "${passthru.pythonInterp}"
+ done
+
+ for x in $(find . -type f -iname '*.py'); do
+ substituteInPlace "$x" \
+ --replace '/usr/bin/env python3' '${passthru.pythonInterp}'
+ done
+ '';
+
+ meta = {
+ description = "Documentation and tools for Lattice iCE40 FPGAs";
+ longDescription = ''
+ Project IceStorm aims at reverse engineering and
+ documenting the bitstream format of Lattice iCE40
+ FPGAs and providing simple tools for analyzing and
+ creating bitstream files.
+ '';
+ homepage = "http://www.clifford.at/icestorm/";
+ license = stdenv.lib.licenses.isc;
+ maintainers = with stdenv.lib.maintainers; [ shell thoughtpolice emily ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/icr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/icr/default.nix
new file mode 100644
index 000000000000..50a349d8ff71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/icr/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, crystal, shards, makeWrapper, pkgconfig, which
+, openssl, readline, libyaml, zlib }:
+
+crystal.buildCrystalPackage rec {
+ pname = "icr";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "crystal-community";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1bz2bhs6csyg2rhrlknlvaiilq3vq8plxjh1hdxmbrfi3n6c7k5a";
+ };
+
+ shardsFile = ./shards.nix;
+
+ buildInputs = [ libyaml openssl readline zlib ];
+
+ nativeBuildInputs = [ makeWrapper pkgconfig which ];
+
+ # tests are failing due to our sandbox
+ doCheck = false;
+
+ postFixup = ''
+ wrapProgram $out/bin/icr \
+ --prefix PATH : ${lib.makeBinPath [ crystal shards makeWrapper which ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Interactive console for the Crystal programming language";
+ homepage = "https://github.com/crystal-community/icr";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/icr/shards.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/icr/shards.nix
new file mode 100644
index 000000000000..1dddd5a42c39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/icr/shards.nix
@@ -0,0 +1,8 @@
+{
+ readline = {
+ owner = "crystal-lang";
+ repo = "crystal-readline";
+ rev = "0fb7d186da8e1b157998d98d1c96e99699b791eb";
+ sha256 = "1rk27vw3ssldgnfgprwvz2gag02v4g6d6yg56b3sk9w3fn8jyyi8";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/iferr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/iferr/default.nix
new file mode 100644
index 000000000000..0e8f797f77ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/iferr/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "iferr-unstable";
+ version = "2018-06-15";
+ rev = "bb332a3b1d9129b6486c7ddcb7030c11b05cfc88";
+
+ goPackagePath = "github.com/koron/iferr";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "koron";
+ repo = "iferr";
+ sha256 = "1nyqy1sgq2afiama4wy7wap8s03c0hiwwa0f6kwq3y59097rfc0c";
+ };
+
+ meta = with lib; {
+ description = ''Generate "if err != nil {" block'';
+ homepage = "https://github.com/koron/iferr";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/imatix_gsl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/imatix_gsl/default.nix
new file mode 100644
index 000000000000..edba0d686dbb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/imatix_gsl/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pcre } :
+
+stdenv.mkDerivation {
+ pname = "imatix_gsl";
+ version = "4.1";
+
+ src = fetchFromGitHub {
+ owner = "imatix";
+ repo = "gsl";
+ rev = "72192d0d9de17de08d9379602d6482b4e5d402d0";
+ sha256 = "1apy11avgqc27xlczyjh15y10qjdyqsqab1wrl2067qgpdiy58w7";
+ };
+
+ buildInputs = [ pcre ];
+
+ CCNAME = "cc";
+
+ postPatch = "sed -e 's,/usr/bin/install,install,g' -i src/Makefile";
+ preBuild = "cd src";
+ installFlags = [ "DESTDIR=$(out)" ];
+
+ meta = with stdenv.lib; {
+ license = licenses.gpl3Plus;
+ homepage = "https://github.com/imatix/gsl/";
+ description = "A universal code generator";
+ platforms = platforms.unix;
+ maintainers = [ maintainers.moosingin3space ];
+ broken = stdenv.isLinux; # 2018-04-10
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/impl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/impl/default.nix
new file mode 100644
index 000000000000..327226fe7a1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/impl/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "impl-unstable";
+ version = "2019-11-19";
+ rev = "6b9658ad00c7fbd61a7b50c195754413f6c4142c";
+
+ goPackagePath = "github.com/josharian/impl";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "josharian";
+ repo = "impl";
+ sha256 = "1d4fvj7fgiykznx1z4fmcc06x5hsqp9wn62m5qm1ds8m0rjqaxwi";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "impl generates method stubs for implementing an interface";
+ homepage = "https://github.com/josharian/impl";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/impl/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/impl/deps.nix
new file mode 100644
index 000000000000..f028df3be2d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/impl/deps.nix
@@ -0,0 +1,30 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "golang.org/x/mod";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/mod";
+ rev = "2addee1ccfb22349ab47953a3046338e461eb4d1";
+ sha256 = "1r0drcji290nlq9czibcfynpwxyqx8a5p4b7lam6wblbh2lasfb6";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "72e4a01eba4315301fd9ce00c8c2f492580ded8a";
+ sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/xerrors";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/xerrors";
+ rev = "9bdfabe68543c54f90421aeb9a60ef8061b5b544";
+ sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ineffassign/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ineffassign/default.nix
new file mode 100644
index 000000000000..85c643537af8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ineffassign/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "ineffassign-unstable";
+ version = "2018-09-09";
+ rev = "1003c8bd00dc2869cb5ca5282e6ce33834fed514";
+
+ goPackagePath = "github.com/gordonklaus/ineffassign";
+ excludedPackages = ''testdata'';
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "gordonklaus";
+ repo = "ineffassign";
+ sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
+ };
+
+ meta = with lib; {
+ description = "Detect ineffectual assignments in Go code";
+ homepage = "https://github.com/gordonklaus/ineffassign";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/default.nix
new file mode 100644
index 000000000000..b7f568f4d2b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/default.nix
@@ -0,0 +1,31 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "interfacer-unstable";
+ version = "2018-08-31";
+ rev = "c20040233aedb03da82d460eca6130fcd91c629a";
+
+ goPackagePath = "mvdan.cc/interfacer";
+ excludedPackages = ''check/testdata'';
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "mvdan";
+ repo = "interfacer";
+ sha256 = "0cx4m74mvn200360pmsqxx4z0apk9fcknwwqh8r94zd3jfv4akq2";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "A linter that suggests interface types";
+ homepage = "https://github.com/mvdan/interfacer";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/deps.nix
new file mode 100644
index 000000000000..6810950878be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/interfacer/deps.nix
@@ -0,0 +1,29 @@
+[
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "96e9e165b75e735822645eff82850b08c377be36";
+ sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+ };
+ }
+ {
+ goPackagePath = "mvdan.cc/lint";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mvdan/lint";
+ rev = "adc824a0674b99099789b6188a058d485eaf61c0";
+ sha256 = "17mi2rvkg9kzv1shxcyawzcj4jj3v738d1j82fp4yygx859yvr8r";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/irony-server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/irony-server/default.nix
new file mode 100644
index 000000000000..cc56b27ca2df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/irony-server/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, cmake, llvmPackages, irony }:
+
+stdenv.mkDerivation {
+ pname = "irony-server";
+ inherit (irony) src version;
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ llvmPackages.libclang llvmPackages.llvm ];
+
+ dontUseCmakeBuildDir = true;
+
+ cmakeDir = "server";
+
+ cmakeFlags = [
+ "-DCMAKE_PREFIX_PATH=${llvmPackages.clang-unwrapped}"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "The server part of irony";
+ homepage = "https://melpa.org/#/irony";
+ maintainers = [ maintainers.deepfire ];
+ platforms = platforms.unix;
+ license = licenses.free;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/java/cfr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/java/cfr/default.nix
new file mode 100644
index 000000000000..ce1501fa4dd5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/java/cfr/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, makeWrapper, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "cfr";
+ version = "0.150";
+
+ src = fetchurl {
+ url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
+ sha256 = "09lq21phnhr374wb8gj355jsqj8c4m5m818r3pbr8f8zpaamjxfj";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ jar=$out/share/java/cfr_${version}.jar
+ install -Dm444 $src $jar
+ makeWrapper ${jre}/bin/java $out/bin/cfr --add-flags "-jar $jar"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Another java decompiler";
+ longDescription = ''
+ CFR will decompile modern Java features - Java 8 lambdas (pre and post
+ Java beta 103 changes), Java 7 String switches etc, but is written
+ entirely in Java 6.
+ '';
+ homepage = "http://www.benf.org/other/cfr/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/java/dex2jar/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/java/dex2jar/default.nix
new file mode 100644
index 000000000000..c1f7f1329854
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/java/dex2jar/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, lib
+, fetchurl
+, jre
+, makeWrapper
+, unzip
+}:
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ pname = "dex2jar";
+ version = "2.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${name}.zip";
+ sha256 = "1g3mrbyl8sdw1nhp17z23qbfzqpa0w2yxrywgphvd04jdr6yn1vr";
+ };
+
+ nativeBuildInputs = [ makeWrapper unzip ];
+
+ postPatch = ''
+ rm *.bat
+ chmod +x *.sh
+ '';
+
+ installPhase = ''
+ f=$out/lib/dex2jar/
+
+ mkdir -p $f $out/bin
+
+ mv * $f
+ for i in $f/*.sh; do
+ n=$(basename ''${i%.sh})
+ makeWrapper $i $out/bin/$n --prefix PATH : ${lib.makeBinPath [ jre ] }
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = https://sourceforge.net/projects/dex2jar/;
+ description = "Tools to work with android .dex and java .class files";
+ maintainers = with maintainers; [ makefu ];
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/java/fastjar/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/java/fastjar/default.nix
new file mode 100644
index 000000000000..04fe7c2f46df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/java/fastjar/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, zlib }:
+
+let version = "0.98"; in
+ stdenv.mkDerivation {
+ pname = "fastjar";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://download.savannah.gnu.org/releases/fastjar/fastjar-${version}.tar.gz";
+ sha256 = "0iginbz2m15hcsa3x4y7v3mhk54gr1r7m3ghx0pg4n46vv2snmpi";
+ };
+
+ buildInputs = [ zlib ];
+
+ doCheck = true;
+
+ meta = {
+ description = "Fast Java archiver written in C";
+
+ longDescription = ''
+ Fastjar is a version of Sun's `jar' utility, written entirely in C, and
+ therefore quite a bit faster. Fastjar can be up to 100x faster than
+ the stock `jar' program running without a JIT.
+ '';
+
+ homepage = "https://savannah.nongnu.org/projects/fastjar/";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/java/jhiccup/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/java/jhiccup/default.nix
new file mode 100644
index 000000000000..1b235e354855
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/java/jhiccup/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "jhiccup";
+ version = "2.0.10";
+
+ src = fetchzip {
+ url = "https://www.azul.com/files/jHiccup-${version}-dist.zip";
+ sha256 = "1hsvi8wjh615fnjf75h7b5afp04chqcgvini30vfcn3m9a5icbgy";
+ };
+
+ dontConfigure = true;
+ buildPhase = ":";
+ installPhase = ''
+ mkdir -p $out/bin $out/share/java
+ cp *.jar $out/share/java
+
+ # Fix version number (out of date at time of import), and path to
+ # jHiccup.jar
+ for x in ./jHiccup ./jHiccupLogProcessor; do
+ substituteInPlace $x \
+ --replace 'JHICCUP_Version=2.0.5' 'JHICCUP_Version=${version}' \
+ --replace '$INSTALLED_PATH' $out/share/java
+ done
+
+ mv jHiccup jHiccupLogProcessor $out/bin/
+ '';
+
+ meta = {
+ description = "Measure JVM application stalls and GC pauses";
+ homepage = "https://www.azul.com/jhiccup/";
+ license = stdenv.lib.licenses.cc0;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/java/visualvm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
new file mode 100644
index 000000000000..6cf97277bb5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
+
+stdenv.mkDerivation rec {
+ version = "2.0.4";
+ pname = "visualvm";
+
+ src = fetchzip {
+ url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""] version}.zip";
+ sha256 = "1ic6gjsw90j7pr1yyplmk1zc319ld49i6d4zlgs7mlz1m4bn5jv3";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "visualvm";
+ exec = "visualvm";
+ comment = "Java Troubleshooting Tool";
+ desktopName = "VisualVM";
+ genericName = "Java Troubleshooting Tool";
+ categories = "Development;";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ find . -type f -name "*.dll" -o -name "*.exe" -delete;
+
+ substituteInPlace etc/visualvm.conf \
+ --replace "#visualvm_jdkhome=" "visualvm_jdkhome=" \
+ --replace "/path/to/jdk" "${jdk.home}" \
+
+ substituteInPlace platform/lib/nbexec \
+ --replace /usr/bin/\''${awk} ${gawk}/bin/awk
+
+ cp -r . $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A visual interface for viewing information about Java applications";
+ longDescription = ''
+ VisualVM is a visual tool integrating several commandline JDK
+ tools and lightweight profiling capabilities. Designed for both
+ production and development time use, it further enhances the
+ capability of monitoring and performance analysis for the Java
+ SE platform.
+ '';
+ homepage = "https://visualvm.github.io";
+ license = licenses.gpl2ClasspathPlus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ michalrus moaxcp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile
new file mode 100644
index 000000000000..27c230a9829a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'jazzy'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock
new file mode 100644
index 000000000000..9f6050001ccd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock
@@ -0,0 +1,109 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ CFPropertyList (3.0.2)
+ activesupport (4.2.11.3)
+ i18n (~> 0.7)
+ minitest (~> 5.1)
+ thread_safe (~> 0.3, >= 0.3.4)
+ tzinfo (~> 1.1)
+ algoliasearch (1.27.3)
+ httpclient (~> 2.8, >= 2.8.3)
+ json (>= 1.5.1)
+ atomos (0.1.3)
+ claide (1.0.3)
+ cocoapods (1.9.3)
+ activesupport (>= 4.0.2, < 5)
+ claide (>= 1.0.2, < 2.0)
+ cocoapods-core (= 1.9.3)
+ cocoapods-deintegrate (>= 1.0.3, < 2.0)
+ cocoapods-downloader (>= 1.2.2, < 2.0)
+ cocoapods-plugins (>= 1.0.0, < 2.0)
+ cocoapods-search (>= 1.0.0, < 2.0)
+ cocoapods-stats (>= 1.0.0, < 2.0)
+ cocoapods-trunk (>= 1.4.0, < 2.0)
+ cocoapods-try (>= 1.1.0, < 2.0)
+ colored2 (~> 3.1)
+ escape (~> 0.0.4)
+ fourflusher (>= 2.3.0, < 3.0)
+ gh_inspector (~> 1.0)
+ molinillo (~> 0.6.6)
+ nap (~> 1.0)
+ ruby-macho (~> 1.4)
+ xcodeproj (>= 1.14.0, < 2.0)
+ cocoapods-core (1.9.3)
+ activesupport (>= 4.0.2, < 6)
+ algoliasearch (~> 1.0)
+ concurrent-ruby (~> 1.1)
+ fuzzy_match (~> 2.0.4)
+ nap (~> 1.0)
+ netrc (~> 0.11)
+ typhoeus (~> 1.0)
+ cocoapods-deintegrate (1.0.4)
+ cocoapods-downloader (1.4.0)
+ cocoapods-plugins (1.0.0)
+ nap
+ cocoapods-search (1.0.0)
+ cocoapods-stats (1.1.0)
+ cocoapods-trunk (1.5.0)
+ nap (>= 0.8, < 2.0)
+ netrc (~> 0.11)
+ cocoapods-try (1.2.0)
+ colored2 (3.1.2)
+ concurrent-ruby (1.1.6)
+ escape (0.0.4)
+ ethon (0.12.0)
+ ffi (>= 1.3.0)
+ ffi (1.13.1)
+ fourflusher (2.3.1)
+ fuzzy_match (2.0.4)
+ gh_inspector (1.1.3)
+ httpclient (2.8.3)
+ i18n (0.9.5)
+ concurrent-ruby (~> 1.0)
+ jazzy (0.13.5)
+ cocoapods (~> 1.5)
+ mustache (~> 1.1)
+ open4
+ redcarpet (~> 3.4)
+ rouge (>= 2.0.6, < 4.0)
+ sassc (~> 2.1)
+ sqlite3 (~> 1.3)
+ xcinvoke (~> 0.3.0)
+ json (2.3.1)
+ liferaft (0.0.6)
+ minitest (5.14.1)
+ molinillo (0.6.6)
+ mustache (1.1.1)
+ nanaimo (0.3.0)
+ nap (1.1.0)
+ netrc (0.11.0)
+ open4 (1.3.4)
+ redcarpet (3.5.0)
+ rouge (3.21.0)
+ ruby-macho (1.4.0)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ sqlite3 (1.4.2)
+ thread_safe (0.3.6)
+ typhoeus (1.4.0)
+ ethon (>= 0.9.0)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ xcinvoke (0.3.0)
+ liferaft (~> 0.0.6)
+ xcodeproj (1.17.1)
+ CFPropertyList (>= 2.3.3, < 4.0)
+ atomos (~> 0.1.3)
+ claide (>= 1.0.2, < 2.0)
+ colored2 (~> 3.1)
+ nanaimo (~> 0.3.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ jazzy
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/default.nix
new file mode 100644
index 000000000000..a0561040704c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "jazzy";
+ gemdir = ./.;
+ exes = [ "jazzy" ];
+
+ passthru.updateScript = bundlerUpdateScript "jazzy";
+
+ meta = with lib; {
+ description = "A command-line utility that generates documentation for Swift or Objective-C";
+ homepage = "https://github.com/realm/jazzy";
+ license = licenses.mit;
+ platforms = platforms.darwin;
+ maintainers = with maintainers; [
+ peterromfeldhk
+ lilyball
+ nicknovitski
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/gemset.nix
new file mode 100644
index 000000000000..aa4492560b81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jazzy/gemset.nix
@@ -0,0 +1,434 @@
+{
+ activesupport = {
+ dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
+ type = "gem";
+ };
+ version = "4.2.11.3";
+ };
+ algoliasearch = {
+ dependencies = ["httpclient" "json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
+ type = "gem";
+ };
+ version = "1.27.3";
+ };
+ atomos = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "17vq6sjyswr5jfzwdccw748kgph6bdw30bakwnn6p8sl4hpv4hvx";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ CFPropertyList = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1825ll26p28swjiw8n3x2pnh5ygsmg83spf82fnzcjn2p87vc5lf";
+ type = "gem";
+ };
+ version = "3.0.2";
+ };
+ claide = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ cocoapods = {
+ dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
+ type = "gem";
+ };
+ version = "1.9.3";
+ };
+ cocoapods-core = {
+ dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
+ type = "gem";
+ };
+ version = "1.9.3";
+ };
+ cocoapods-deintegrate = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bf524f1za92i6rlr4cr6jm3c4vfjszsdc9lsr6wk5125c76ipzn";
+ type = "gem";
+ };
+ version = "1.0.4";
+ };
+ cocoapods-downloader = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ cocoapods-plugins = {
+ dependencies = ["nap"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16na82sfyc8801qs1n22nwq486s4j7yj6rj7fcp8cbxmj371fpbj";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ cocoapods-search = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02wmy5rbjk29c65zn62bffxv30qs11slql23qx65snkm0vd93mn6";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ cocoapods-stats = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ cocoapods-trunk = {
+ dependencies = ["nap" "netrc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12c6028bmdwrbqcb49mr5qj1p3vcijnjqbsbzywfx1isp44j9mv5";
+ type = "gem";
+ };
+ version = "1.5.0";
+ };
+ cocoapods-try = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1znyp625rql37ivb5rk9fk9564cmax8icxfr041ysivpdrn98nql";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ colored2 = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+ type = "gem";
+ };
+ version = "3.1.2";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ escape = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sa1xkfc9jvkwyw1jbz3jhkq0ms1zrvswi6mmfiwcisg5fp497z4";
+ type = "gem";
+ };
+ version = "0.0.4";
+ };
+ 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";
+ };
+ fourflusher = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1afabh3g3gwj0ad53fs62waks815xcckf7pkci76l6vrghffcg8v";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ fuzzy_match = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19gw1ifsgfrv7xdi6n61658vffgm1867f4xdqfswb2b5h6alzpmm";
+ type = "gem";
+ };
+ version = "2.0.4";
+ };
+ gh_inspector = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f8r9byajj3bi2c7c5sqrc7m0zrv3nblfcd4782lw5l73cbsgk04";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+ type = "gem";
+ };
+ version = "0.9.5";
+ };
+ jazzy = {
+ dependencies = ["cocoapods" "mustache" "open4" "redcarpet" "rouge" "sassc" "sqlite3" "xcinvoke"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ysx3zq069mi1w69z0dqck9ss9iv18w8a2f6j663vqq6kn1b69dm";
+ type = "gem";
+ };
+ version = "0.13.5";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+ type = "gem";
+ };
+ version = "2.3.1";
+ };
+ liferaft = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kasbbx84gzsxx8w8bgr6xjg43h9bvzzaqg7si8jirnja8yc27k3";
+ type = "gem";
+ };
+ version = "0.0.6";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ type = "gem";
+ };
+ version = "5.14.1";
+ };
+ molinillo = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hh40z1adl4lw16dj4hxgabx4rr28mgqycih1y1d91bwww0jjdg6";
+ type = "gem";
+ };
+ version = "0.6.6";
+ };
+ mustache = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch";
+ type = "gem";
+ };
+ version = "1.1.1";
+ };
+ nanaimo = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ nap = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xm5xssxk5s03wjarpipfm39qmgxsalb46v1prsis14x1xk935ll";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ netrc = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ open4 = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1cgls3f9dlrpil846q0w7h66vsc33jqn84nql4gcqkk221rh7px1";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
+ redcarpet = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0skcyx1h8b5ms0rp2zm3ql6g322b8c1adnkwkqyv7z3kypb4bm7k";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+ rouge = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1agrrmj88k9jkk36ra1ml2c1jffpp595pkxmcla74ac9ia09vn3s";
+ type = "gem";
+ };
+ version = "3.21.0";
+ };
+ ruby-macho = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lhdjn91jkifsy2hzq2hgcm0pp8pbik87m58zmw1ifh6hkp9adjb";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ sassc = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ sqlite3 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78";
+ type = "gem";
+ };
+ version = "1.4.2";
+ };
+ thread_safe = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
+ type = "gem";
+ };
+ version = "1.4.0";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ xcinvoke = {
+ dependencies = ["liferaft"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16pyq7wvx2c0fywrqxk3vg6psa3yjhbd7hw7hv2mjim6myjkdsb7";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+ xcodeproj = {
+ dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0mv5rsbgwq4vzri31w2f1474arrsr5j69rdhklrci6jnjps8dmx9";
+ type = "gem";
+ };
+ version = "1.17.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jbake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jbake/default.nix
new file mode 100644
index 000000000000..ad127b94960f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jbake/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchzip, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ version = "2.6.5";
+ pname = "jbake";
+
+ src = fetchzip {
+ url = "https://dl.bintray.com/jbake/binary/${pname}-${version}-bin.zip";
+ sha256 = "0ripayv1vf4f4ylxr7h9kad2xhy3y98ca8s4p38z7dn8l47zg0qw";
+ };
+
+ buildInputs = [ makeWrapper jre ];
+
+ postPatch = "patchShebangs .";
+
+ installPhase = ''
+ mkdir -p $out
+ cp -vr * $out
+ wrapProgram $out/bin/jbake --set JAVA_HOME "${jre}"
+ '';
+
+ checkPhase = ''
+ export JAVA_HOME=${jre}
+ bin/jbake | grep -q "${version}" || (echo "jbake did not return correct version"; exit 1)
+ '';
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "JBake is a Java based, open source, static site/blog generator for developers & designers";
+ homepage = "https://jbake.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ moaxcp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jd/default.nix
new file mode 100644
index 000000000000..b03fd7a0028a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jd/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "jd";
+ version = "0.3.1";
+ rev = "2729b5af166cfd72bd953ef8959b456c4db940fc";
+
+ goPackagePath = "github.com/tidwall/jd";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/tidwall/jd";
+ sha256 = "0dj4k38pf80dl77jns29vx2dj265s4ksg2q2s9n240b7b8z8mn5h";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Interactive JSON Editor";
+ license = licenses.mit;
+ maintainers = [ maintainers.np ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jid/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jid/default.nix
new file mode 100644
index 000000000000..e6eef68ec6cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jid/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "jid";
+ version = "0.7.6";
+
+ goPackagePath = "github.com/simeji/jid";
+
+ src = fetchFromGitHub {
+ owner = "simeji";
+ repo = "jid";
+ rev = "v${version}";
+ sha256 = "15fgi7cpq5bg2lnpr7rip359xwj2kvlj6j2qzi837c26adnw973x";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ description = "A command-line tool to incrementally drill down JSON";
+ homepage = "https://github.com/simeji/jid";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ stesie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jid/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jid/deps.nix
new file mode 100644
index 000000000000..6e2d5514a838
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jid/deps.nix
@@ -0,0 +1,75 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/bitly/go-simplejson";
+ fetch = {
+ type = "git";
+ url = "https://github.com/bitly/go-simplejson";
+ rev = "v0.5.0";
+ sha256 = "0n9f9dz1jn1jx86d48569nznpjn9fmq3knn7r65xpy7jhih284jj";
+ };
+ }
+ {
+ goPackagePath = "github.com/fatih/color";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fatih/color";
+ rev = "v1.7.0";
+ sha256 = "0v8msvg38r8d1iiq2i5r4xyfx0invhc941kjrsg5gzwvagv55inv";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "v0.0.9";
+ sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "v0.0.4";
+ sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "v0.0.4";
+ sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
+ };
+ }
+ {
+ goPackagePath = "github.com/nsf/termbox-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nsf/termbox-go";
+ rev = "60ab7e3d12ed";
+ sha256 = "040064fh7wzdmv8flw6svi007hiqs1cjk1a3k3gpg7gii3npifsl";
+ };
+ }
+ {
+ goPackagePath = "github.com/nwidger/jsoncolor";
+ fetch = {
+ type = "git";
+ url = "https://github.com/nwidger/jsoncolor";
+ rev = "75a6de4340e5";
+ sha256 = "0aiv42xijrqgrxfx6pfyrndpwqv8i1qwsk190jdczyjxlnki2nki";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/errors";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/errors";
+ rev = "v0.8.0";
+ sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jira_cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jira_cli/default.nix
new file mode 100644
index 000000000000..19d6fa392dd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jira_cli/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, libffi, openssl, python3Packages }:
+let
+ inherit (python3Packages) fetchPypi buildPythonApplication vcrpy mock hiro;
+in
+ buildPythonApplication rec {
+ pname = "jira-cli";
+ version = "2.2";
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "314118d5d851394ebf910122fd7ce871f63581393968c71456441eb56be3b112";
+ };
+
+ postPatch = ''
+ substituteInPlace requirements/main.txt --replace "argparse" ""
+ '';
+
+ # Tests rely on VCR cassettes being written during tests. R/O nix store prevents this.
+ doCheck = false;
+ checkInputs = with python3Packages; [ vcrpy mock hiro ];
+ buildInputs = [ libffi openssl ];
+ propagatedBuildInputs = with python3Packages; [
+ ordereddict requests six suds-jurko termcolor keyring
+ jira keyrings-alt
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A command line interface to Jira";
+ homepage = "https://github.com/alisaifee/jira-cli";
+ maintainers = with maintainers; [ nyarly ];
+ license = licenses.mit;
+ };
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jl/default.nix
new file mode 100644
index 000000000000..9a1314a60835
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jl/default.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, fetchFromGitHub, fetchpatch
+, aeson, aeson-pretty, attoparsec, base, bytestring, conduit, conduit-extra
+, containers, exceptions, mtl, optparse-simple, parsec, scientific, stdenv
+, text, unordered-containers, vector
+}:
+mkDerivation rec {
+ pname = "jl";
+ version = "0.0.5";
+ src = fetchFromGitHub {
+ owner = "chrisdone";
+ repo = "jl";
+ rev = "v${version}";
+ sha256 = "1hlnwsl4cj0l4x8dxwda2fcnk789cwlphl9gv9cfrivl43mgkgar";
+ };
+ patches = [
+ # MonadFail compatibility patch. Should be removed with the next release
+ (fetchpatch {
+ url = "https://github.com/chrisdone/jl/commit/6d40308811cbc22a96b47ebe69ec308b4e9fd356.patch";
+ sha256 = "1pg92ffkg8kim5r8rz8js6fjqyjisg1266sf7p9jyxjgsskwpa4g";
+ })
+ ];
+
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ aeson attoparsec base bytestring containers exceptions mtl parsec
+ scientific text unordered-containers vector
+ ];
+ executableHaskellDepends = [
+ aeson aeson-pretty base bytestring conduit conduit-extra containers
+ mtl optparse-simple text vector
+ ];
+ license = stdenv.lib.licenses.bsd3;
+ description = "Functional sed for JSON";
+ maintainers = with stdenv.lib.maintainers; [ fgaz ];
+ homepage = "https://github.com/chrisdone/jl";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jmespath/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jmespath/default.nix
new file mode 100644
index 000000000000..5414c51a00c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jmespath/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "jmespath";
+ version = "0.2.2";
+ rev = version;
+
+ goPackagePath = "github.com/jmespath/go-jmespath";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "jmespath";
+ repo = "go-jmespath";
+ sha256 = "0f4j0m44limnjd6q5fk152g6jq2a5cshcdms4p3a1br8pl9wp5fb";
+ };
+ meta = with stdenv.lib; {
+ description = "A JMESPath implementation in Go";
+ homepage = "https://github.com/jmespath/go-jmespath";
+ maintainers = with maintainers; [ cransom ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jo/default.nix
new file mode 100644
index 000000000000..8592e38de7f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jo/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub, autoreconfHook, pandoc, pkgconfig}:
+
+stdenv.mkDerivation rec {
+ pname = "jo";
+ version = "1.4";
+
+ src = fetchFromGitHub {
+ owner = "jpmens";
+ repo = "jo";
+ rev = version;
+ sha256 ="1jnv3g38vaa66m83hqibyki31ii81xfpvjw6wgdv18ci3iwvsz3v";
+ };
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ autoreconfHook pandoc pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "A small utility to create JSON objects";
+ homepage = "https://github.com/jpmens/jo";
+ license = licenses.gpl2Plus;
+ maintainers = [maintainers.markus1189];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jp/default.nix
new file mode 100644
index 000000000000..f05c788dabe1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "jp";
+ version = "0.1.3";
+ rev = version;
+
+ goPackagePath = "github.com/jmespath/jp";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "jmespath";
+ repo = "jp";
+ sha256 = "0fdbnihbd0kq56am3bmh2zrfk4fqjslcbm48malbgmpqw3a5nvpi";
+ };
+ meta = with stdenv.lib; {
+ description = "A command line interface to the JMESPath expression language for JSON";
+ homepage = "https://github.com/jmespath/jp";
+ maintainers = with maintainers; [ cransom ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jpexs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jpexs/default.nix
new file mode 100644
index 000000000000..87bba3847b55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jpexs/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchzip, makeWrapper, makeDesktopItem, jdk8 }:
+
+stdenv.mkDerivation rec {
+ pname = "jpexs";
+ version = "11.3.0";
+
+ src = fetchzip {
+ url = "${meta.homepage}/releases/download/version${version}/ffdec_${version}.zip";
+ sha256 = "0d1xmq21vdpn0glwfzr00s62ic8jynmgmgxl0m1834xqf3ma0ihv";
+ stripRoot = false;
+ };
+
+ dontBuild = true;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ mkdir -p $out/share/{ffdec,icons/hicolor/512x512/apps}
+
+ cp ffdec.jar $out/share/ffdec
+ cp -r lib $out/share/ffdec
+ cp icon.png $out/share/icons/hicolor/512x512/apps/ffdec.png
+ cp -r ${desktopItem}/share/applications $out/share
+
+ makeWrapper ${jdk8}/bin/java $out/bin/ffdec \
+ --add-flags "-jar $out/share/ffdec/ffdec.jar"
+ '';
+
+ desktopItem = makeDesktopItem rec {
+ name = "ffdec";
+ exec = name;
+ icon = name;
+ desktopName = "JPEXS Free Flash Decompiler";
+ genericName = "Flash Decompiler";
+ comment = meta.description;
+ categories = "Development;Java;";
+ extraEntries = ''
+ StartupWMClass=com-jpexs-decompiler-flash-gui-Main
+ '';
+ };
+
+ meta = with stdenv.lib; {
+ description = "Flash SWF decompiler and editor";
+ longDescription = ''
+ Open-source Flash SWF decompiler and editor. Extract resources,
+ convert SWF to FLA, edit ActionScript, replace images, sounds,
+ texts or fonts.
+ '';
+ homepage = "https://github.com/jindrapetrik/jpexs-decompiler";
+ license = licenses.gpl3;
+ platforms = jdk8.meta.platforms;
+ maintainers = with maintainers; [ samuelgrf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jq/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jq/default.nix
new file mode 100644
index 000000000000..8605ef398a1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jq/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, oniguruma }:
+
+stdenv.mkDerivation rec {
+ pname = "jq";
+ version="1.6";
+
+ src = fetchurl {
+ url="https://github.com/stedolan/jq/releases/download/jq-${version}/jq-${version}.tar.gz";
+ sha256="0wmapfskhzfwranf6515nzmm84r7kwljgfs7dg6bjgxakbicis2x";
+ };
+
+ outputs = [ "bin" "doc" "man" "dev" "lib" "out" ];
+
+ buildInputs = [ oniguruma ];
+
+ configureFlags =
+ [
+ "--bindir=\${bin}/bin"
+ "--sbindir=\${bin}/bin"
+ "--datadir=\${doc}/share"
+ "--mandir=\${man}/share/man"
+ ]
+ # jq is linked to libjq:
+ ++ stdenv.lib.optional (!stdenv.isDarwin) "LDFLAGS=-Wl,-rpath,\\\${libdir}";
+
+ doInstallCheck = true;
+ installCheckTarget = "check";
+
+ postInstallCheck = ''
+ $bin/bin/jq --help >/dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''A lightweight and flexible command-line JSON processor'';
+ license = licenses.mit;
+ maintainers = with maintainers; [ raskin globin ];
+ platforms = with platforms; linux ++ darwin;
+ downloadPage = "http://stedolan.github.io/jq/download/";
+ updateWalker = true;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile
new file mode 100644
index 000000000000..483fc40ff799
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "jsduck"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile.lock
new file mode 100644
index 000000000000..d8331181652b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/Gemfile.lock
@@ -0,0 +1,23 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ dimensions (1.2.0)
+ jsduck (5.3.4)
+ dimensions (~> 1.2.0)
+ json (~> 1.8.0)
+ parallel (~> 0.7.1)
+ rdiscount (~> 2.1.6)
+ rkelly-remix (~> 0.0.4)
+ json (1.8.6)
+ parallel (0.7.1)
+ rdiscount (2.1.8)
+ rkelly-remix (0.0.7)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ jsduck
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/default.nix
new file mode 100644
index 000000000000..233b39338760
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, bundlerEnv, makeWrapper, bundlerUpdateScript }:
+
+stdenv.mkDerivation rec {
+ pname = "jsduck";
+ version = (import ./gemset.nix).jsduck.version;
+
+ env = bundlerEnv {
+ name = pname;
+ gemfile = ./Gemfile;
+ lockfile = ./Gemfile.lock;
+ gemset = ./gemset.nix;
+ };
+
+ phases = [ "installPhase" ];
+
+ buildInputs = [ env makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ makeWrapper ${env}/bin/jsduck $out/bin/jsduck
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "jsduck";
+
+ meta = with lib; {
+ description = "Simple JavaScript Duckumentation generator";
+ homepage = "https://github.com/senchalabs/jsduck";
+ license = with licenses; gpl3;
+ maintainers = with maintainers; [ periklis nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/gemset.nix
new file mode 100644
index 000000000000..493cc42f4f4e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jsduck/gemset.nix
@@ -0,0 +1,51 @@
+{
+ dimensions = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pqb7yzjcpbgbyi196ifqbd1wy570cn12bkzcvpcha4xilhajja0";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ jsduck = {
+ dependencies = ["dimensions" "json" "parallel" "rdiscount" "rkelly-remix"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0hac7g9g6gg10bigbm8dskwwbv1dfch8ca353gh2bkwf244qq2xr";
+ type = "gem";
+ };
+ version = "5.3.4";
+ };
+ json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
+ type = "gem";
+ };
+ version = "1.8.6";
+ };
+ parallel = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1kzz6ydg7r23ks2b7zbpx4vz3h186n19vhgnjcwi7xwd6h2f1fsq";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ rdiscount = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vcyy90r6wfg0b0y5wqp3d25bdyqjbwjhkm1xy9jkz9a7j72n70v";
+ type = "gem";
+ };
+ version = "2.1.8";
+ };
+ rkelly-remix = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1g7hjl9nx7f953y7lncmfgp0xgxfxvgfm367q6da9niik6rp1y3j";
+ type = "gem";
+ };
+ version = "0.0.7";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/default.nix
new file mode 100644
index 000000000000..4fe4e4c7eab3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "json2hcl";
+ version = "0.0.6";
+
+ src = fetchFromGitHub {
+ inherit owner;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0knil88n2w41w3nzqz6ljgfjkl5r3x0bh7ifqgiyf6sin3pl4pn0";
+ };
+
+ owner = "kvz";
+ goPackagePath = "github.com/${owner}/${pname}";
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "Convert JSON to HCL, and vice versa";
+ license = with licenses; [ mit ];
+ maintainers = [ maintainers.matthewbauer ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/deps.nix
new file mode 100644
index 000000000000..bb9df28ad87f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/json2hcl/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/Acconut/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Acconut/hcl";
+ rev = "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8";
+ sha256 = "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "23c074d0eceb2b8a5bfdbb271ab780cde70f05a8";
+ sha256 = "0db4lpqb5m130rmfy3s3gjjf4dxllypmyrzxv6ggqhkmwmc7w4mc";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/jtc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/jtc/default.nix
new file mode 100644
index 000000000000..f0e708d58aa5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/jtc/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "jtc";
+ version = "1.75d";
+
+ src = fetchFromGitHub {
+ owner = "ldn-softdev";
+ repo = pname;
+ rev = version;
+ sha256 = "0vgb5hcgml0vmdal494231jq6dlr0qgssqhnrgsvqqjapy8xhnpw";
+ };
+
+ buildPhase = ''
+ runHook preBuild
+
+ $CXX -o jtc -Wall -std=gnu++14 -Ofast jtc.cpp
+
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm755 -t $out/bin jtc
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "JSON manipulation and transformation tool";
+ homepage = "https://github.com/ldn-softdev/jtc";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/just/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/just/default.nix
new file mode 100644
index 000000000000..ebf44d9d699b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/just/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, rustPlatform, coreutils, bash, installShellFiles }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "just";
+ version = "0.7.1";
+
+ src = fetchFromGitHub {
+ owner = "casey";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "07fjixz8y5rxfwpyr1kiimnn27jhc20gacd17i0yvfcpy5qf8z5p";
+ };
+
+ cargoSha256 = "1zn0kiqi8p25lscjd661gczay631nwzadl36cfzqnbww6blayy1j";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installManPage man/just.1
+
+ installShellCompletion --bash --name just.bash completions/just.bash
+ installShellCompletion --fish --name just.fish completions/just.fish
+ installShellCompletion --zsh --name _just completions/just.zsh
+ '';
+
+ checkInputs = [ coreutils bash ];
+
+ preCheck = ''
+ # USER must not be empty
+ export USER=just-user
+ export USERNAME=just-user
+
+ sed -i src/justfile.rs \
+ -i tests/*.rs \
+ -e "s@/bin/echo@${coreutils}/bin/echo@g" \
+ -e "s@#!/usr/bin/env sh@#!${bash}/bin/sh@g" \
+ -e "s@#!/usr/bin/env cat@#!${coreutils}/bin/cat@g" \
+ -e "s@#!/usr/bin/env bash@#!${bash}/bin/sh@g"
+ '';
+
+ # Skip "edit" when running "cargo test",
+ # since this test case needs "cat".
+ checkFlagsArray = [ "--skip=edit" ];
+
+ meta = with stdenv.lib; {
+ description = "A handy way to save and run project-specific commands";
+ homepage = "https://github.com/casey/just";
+ license = licenses.cc0;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/k6/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/k6/default.nix
new file mode 100644
index 000000000000..4dbd890df180
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/k6/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "k6";
+ version = "0.28.0";
+
+ goPackagePath = "github.com/loadimpact/k6";
+
+ src = fetchFromGitHub {
+ owner = "loadimpact";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zpkavl6sg6kcb7wc92lzi4svvv3284xs20zbmgq4i9i5z1njdkx";
+ };
+
+ subPackages = [ "./" ];
+
+ meta = with stdenv.lib; {
+ description = "A modern load testing tool, using Go and JavaScript";
+ homepage = "https://k6.io/";
+ changelog = "https://github.com/loadimpact/k6/releases/tag/v${version}";
+ license = licenses.agpl3Plus;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kafkacat/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kafkacat/default.nix
new file mode 100644
index 000000000000..6e7db6b35c6b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kafkacat/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, pkgconfig, zlib, rdkafka, yajl }:
+
+stdenv.mkDerivation rec {
+ pname = "kafkacat";
+
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "edenhill";
+ repo = "kafkacat";
+ rev = version;
+ sha256 = "0z3bw00s269myfd1xqksjyznmgp74xfs09xqlq347adsgby3cmfs";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ zlib rdkafka yajl ];
+
+ preConfigure = ''
+ patchShebangs ./configure
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A generic non-JVM producer and consumer for Apache Kafka";
+ homepage = "https://github.com/edenhill/kafkacat";
+ license = licenses.bsd2;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ nyarly ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kcli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kcli/default.nix
new file mode 100644
index 000000000000..3a0fff71dc79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kcli/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kcli";
+ version = "1.8.3";
+
+ src = fetchFromGitHub {
+ owner = "cswank";
+ repo = "kcli";
+ rev = version;
+ sha256 = "0whijr2r2j5bvfy8jgmpxsa0zvwk5kfjlpnkw4za5k35q7bjffls";
+ };
+
+ vendorSha256 = "0whqrms5mc7v14p2h1jfvkawm30xaylivijlsghrsaq468qcgg15";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ description = "A kafka command line browser";
+ homepage = "https://github.com/cswank/kcli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ cswank ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kexpand/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kexpand/default.nix
new file mode 100644
index 000000000000..8e45eb2654bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kexpand/default.nix
@@ -0,0 +1,16 @@
+{ buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ name = "kexpand-unstable-2017-05-12";
+
+ goPackagePath = "github.com/kopeio/kexpand";
+
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "kopeio";
+ repo = "kexpand";
+ rev = "c508a43a4e84410dfd30827603e902148c5c1f3c";
+ sha256 = "0946h74lsqnr1106j7i2w2a5jg2bbk831d7prlws4bb2kigfm38p";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kind/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kind/default.nix
new file mode 100644
index 000000000000..6ea2c87f8888
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kind/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+with stdenv.lib;
+
+buildGoModule rec {
+ pname = "kind";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "kubernetes-sigs";
+ repo = "kind";
+ sha256 = "0r301nqvycik8fwlghq0cymmq4rm7xp8haj39i2nynxyw8zk6zym";
+ };
+
+ vendorSha256 = "1qvbm8v8yah6r6cw1cvdw79yiwxb2amzdkkzvzbwigy0j4bvn9mi";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/kind completion $shell > kind.$shell
+ installShellCompletion kind.$shell
+ done
+ '';
+
+ meta = {
+ description = "Kubernetes IN Docker - local clusters for testing Kubernetes";
+ homepage = "https://github.com/kubernetes-sigs/kind";
+ maintainers = with maintainers; [ offline rawkode ];
+ license = stdenv.lib.licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
new file mode 100644
index 000000000000..2ec7d7f20205
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, bison, flex, boost }:
+
+stdenv.mkDerivation rec {
+ pname = "kcc";
+
+ version = "4.0.0";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "kcc";
+ rev = version;
+ sha256 = "1cd226nqbxq32mppkljavq1kb74jqfqns9r7fskszr42hbygynk4";
+ };
+
+ nativeBuildInputs = [ cmake bison flex ];
+
+ buildInputs = [ boost ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "KnightOS C compiler";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
new file mode 100644
index 000000000000..bd4320637dc2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, pkg-config, imagemagick }:
+
+stdenv.mkDerivation rec {
+ pname = "kimg";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "kimg";
+ rev = version;
+ sha256 = "00gj420m0jvhgm8kkslw8r69nl7r73bxrh6gqs2mx16ymcpkanpk";
+ };
+
+ nativeBuildInputs = [ cmake asciidoc pkg-config ];
+
+ buildInputs = [ imagemagick ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "Converts image formats supported by ImageMagick to the KnightOS image format";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
new file mode 100644
index 000000000000..c1ecb963d243
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+ pname = "kpack";
+
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "kpack";
+ rev = version;
+ sha256 = "0kakfbzdvq5ldv1gdzl473j73c9nfdyx4xzfkriglkrqmksqc329";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ buildInputs = [ asciidoc libxslt.bin docbook_xsl ];
+
+ hardeningDisable = [ "fortify" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "A tool to create or extract KnightOS packages";
+ license = licenses.lgpl2Only;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
new file mode 100644
index 000000000000..380bdc58d49b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
+
+stdenv.mkDerivation rec {
+ pname = "mkrom";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "mkrom";
+ rev = version;
+ sha256 = "1nx3787gvs04xdvvamzkjkn9nmy2w70ja8dnh4szk420mvpc85na";
+ };
+
+ nativeBuildInputs = [
+ asciidoc
+ cmake
+ ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "Packages KnightOS distribution files into a ROM";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
new file mode 100644
index 000000000000..171c1671b332
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/mktiupgrade/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
+
+stdenv.mkDerivation rec {
+ pname = "mktiupgrade";
+ version = "1.1.6";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "mktiupgrade";
+ rev = version;
+ sha256 = "15y3rxvv7ipgc80wrvrpksxzdyqr21ywysc9hg6s7d3w8lqdq8dm";
+ };
+
+ nativeBuildInputs = [ asciidoc cmake ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "Makes TI calculator upgrade files from ROM dumps";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
new file mode 100644
index 000000000000..9feab36ec822
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/patchrom/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+
+
+stdenv.mkDerivation rec {
+ pname = "patchrom";
+
+ version = "1.1.3";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "patchrom";
+ rev = version;
+ sha256 = "0yc4q7n3k7k6rx3cxq5ddd5r0la8gw1287a74kql6gwkxjq0jmcv";
+ };
+
+ nativeBuildInputs = [ cmake asciidoc docbook_xsl ];
+
+ buildInputs = [ libxslt ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "Patches jumptables into TI calculator ROM files and generates an include file";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/scas/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
new file mode 100644
index 000000000000..2269c3781a53
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, stdenv, cmake }:
+
+
+stdenv.mkDerivation rec {
+ pname = "scas";
+
+ version = "0.4.6";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "scas";
+ rev = version;
+ sha256 = "1c6s9nivbwgv0f8n7j73h54ydgqw5dcpq8l752dfrnqg3kv3nn0h";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "Assembler and linker for the Z80";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix
new file mode 100644
index 000000000000..6aad8f687e70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/knightos/z80e/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, knightos-scas, readline, SDL2 }:
+
+stdenv.mkDerivation rec {
+ pname = "z80e";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "KnightOS";
+ repo = "z80e";
+ rev = version;
+ sha256 = "18nnip6nv1pq19bxgd07fv7ci3c5yj8d9cip97a4zsfab7bmbq6k";
+ };
+
+ nativeBuildInputs = [ cmake knightos-scas ];
+
+ buildInputs = [ readline SDL2 ];
+
+ cmakeFlags = [ "-Denable-sdl=YES" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://knightos.org/";
+ description = "A Z80 calculator emulator and debugger";
+ license = licenses.mit;
+ maintainers = with maintainers; [ siraben ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ktlint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ktlint/default.nix
new file mode 100644
index 000000000000..fce25903aca9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ktlint/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "ktlint";
+ version = "0.37.2";
+
+ src = fetchurl {
+ url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
+ sha256 = "1hhycvvp21gy6g71hwf3pk2jnccpnhcf2z7c85shzffhddy1wc0v";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ propagatedBuildInputs = [ jre ];
+
+ unpackCmd = ''
+ mkdir -p ${pname}-${version}
+ cp $curSrc ${pname}-${version}/ktlint
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv ktlint $out/bin/ktlint
+ chmod +x $out/bin/ktlint
+ '';
+
+ postFixup = ''
+ wrapProgram $out/bin/ktlint --prefix PATH : "${jre}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An anti-bikeshedding Kotlin linter with built-in formatter";
+ homepage = "https://ktlint.github.io/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ tadfisher ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kube-aws/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-aws/default.nix
new file mode 100644
index 000000000000..0e96683b06e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-aws/default.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+with lib;
+
+buildGoPackage rec {
+ pname = "kube-aws";
+ version = "0.9.4";
+
+ goPackagePath = "github.com/coreos/kube-aws";
+
+ src = fetchFromGitHub {
+ owner = "coreos";
+ repo = "kube-aws";
+ rev = "v${version}";
+ sha256 = "11h14fsnflbx76rmpp0fxahbxi2qgcamgyxy9s4rmw83j2m8csxp";
+ };
+
+ preBuild = ''(
+ cd go/src/${goPackagePath}
+ go generate ./core/controlplane/config
+ go generate ./core/nodepool/config
+ go generate ./core/root/config
+ )'';
+
+ buildFlagsArray = ''
+ -ldflags=-X github.com/coreos/kube-aws/core/controlplane/cluster.VERSION=v${version}
+ '';
+
+ meta = {
+ description = "Tool for deploying kubernetes on aws using coreos";
+ license = licenses.asl20;
+ homepage = "https://github.com/coreos/coreos-kubernetes";
+ maintainers = with maintainers; [offline];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/default.nix
new file mode 100644
index 000000000000..1a7bd6e82892
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "kube-prompt";
+ version = "1.0.5";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/c-bata/kube-prompt";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "c-bata";
+ repo = "kube-prompt";
+ sha256 = "1c1y0n1yxcaxvhlsj7b0wvhi934b5g0s1mi46hh5amb9j3dhgq1c";
+ };
+
+ subPackages = ["."];
+ goDeps = ./deps.nix;
+
+ meta = {
+ description = "An interactive kubernetes client featuring auto-complete using go-prompt";
+ license = lib.licenses.mit;
+ homepage = "https://github.com/c-bata/kube-prompt";
+ maintainers = [ lib.maintainers.vdemeester ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/deps.nix
new file mode 100644
index 000000000000..e2391789a41c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kube-prompt/deps.nix
@@ -0,0 +1,309 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "cloud.google.com/go";
+ fetch = {
+ type = "git";
+ url = "https://code.googlesource.com/gocloud";
+ rev = "aad3f485ee528456e0768f20397b4d9dd941e755";
+ sha256 = "1cgabmg76axkbpm7zip3ym2mym6kwgc9cw9kil0inmckkh3x1ky8";
+ };
+ }
+ {
+ goPackagePath = "github.com/c-bata/go-prompt";
+ fetch = {
+ type = "git";
+ url = "https://github.com/c-bata/go-prompt";
+ rev = "09daf6ae57865e436aab9ede6b66b490036e87de";
+ sha256 = "1s58y0i67x2yvi3iisdhj2qqrbl4kz0viy06caip8ykhxpvvkq30";
+ };
+ }
+ {
+ goPackagePath = "github.com/ghodss/yaml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ghodss/yaml";
+ rev = "0ca9ea5df5451ffdf184b4428c902747c2c11cd7";
+ sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
+ };
+ }
+ {
+ goPackagePath = "github.com/gogo/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gogo/protobuf";
+ rev = "636bf0302bc95575d69441b25a2603156ffdddf1";
+ sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/glog";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/glog";
+ rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
+ sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "b4deda0973fb4c70b50d226b1af49f3da59f5265";
+ sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/btree";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/btree";
+ rev = "e89373fe6b4a7413d7acd6da1725b83ef713e6e4";
+ sha256 = "0jlkjjlf8ilifgsb2bv0jfgl4cxl1bypx7a6pjkwz3xf6k8jd7mj";
+ };
+ }
+ {
+ goPackagePath = "github.com/google/gofuzz";
+ fetch = {
+ type = "git";
+ url = "https://github.com/google/gofuzz";
+ rev = "24818f796faf91cd76ec7bddd72458fbced7a6c1";
+ sha256 = "0cq90m2lgalrdfrwwyycrrmn785rgnxa3l3vp9yxkvnv88bymmlm";
+ };
+ }
+ {
+ goPackagePath = "github.com/googleapis/gnostic";
+ fetch = {
+ type = "git";
+ url = "https://github.com/googleapis/gnostic";
+ rev = "7c663266750e7d82587642f65e60bc4083f1f84e";
+ sha256 = "0yh3ckd7m0r9h50wmxxvba837d0wb1k5yd439zq4p1kpp4390z12";
+ };
+ }
+ {
+ goPackagePath = "github.com/gregjones/httpcache";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gregjones/httpcache";
+ rev = "9cad4c3443a7200dd6400aef47183728de563a38";
+ sha256 = "0wjdwcwqqcx2d5y68qvhg6qyj977il5ijmnn9h9cd6wjbdy0ay6s";
+ };
+ }
+ {
+ goPackagePath = "github.com/imdario/mergo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/imdario/mergo";
+ rev = "9316a62528ac99aaecb4e47eadd6dc8aa6533d58";
+ sha256 = "1mvgn89vp39gcpvhiq4n7nw5ipj7fk6h03jgc6fjwgvwvss213pb";
+ };
+ }
+ {
+ goPackagePath = "github.com/json-iterator/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/json-iterator/go";
+ rev = "ab8a2e0c74be9d3be70b3184d9acc634935ded82";
+ sha256 = "1x3wz44p1238gpyzkiiilvvrq9q8dwjdm9kdidq65yjq0zcn0sq4";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-colorable";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-colorable";
+ rev = "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
+ sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39";
+ sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-runewidth";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-runewidth";
+ rev = "ce7b0b5c7b45a81508558cd1dba6bb1e4ddb51bb";
+ sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-tty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-tty";
+ rev = "931426f7535ac39720c8909d70ece5a41a2502a6";
+ sha256 = "00cb07v13xrfqm39m1j2h2zvj684gl9fzr51591i9a52a9m6xlj5";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/concurrent";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/concurrent";
+ rev = "bacd9c7ef1dd9b15be4a9909b8ac7a4e313eec94";
+ sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
+ };
+ }
+ {
+ goPackagePath = "github.com/modern-go/reflect2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/modern-go/reflect2";
+ rev = "4b7aa43c6742a2c18fdef89dd197aaae7dac7ccd";
+ sha256 = "1721y3yr3dpx5dx5ashf063qczk2awy5zjir1jvp1h5hn7qz4i49";
+ };
+ }
+ {
+ goPackagePath = "github.com/petar/GoLLRB";
+ fetch = {
+ type = "git";
+ url = "https://github.com/petar/GoLLRB";
+ rev = "53be0d36a84c2a886ca057d34b6aa4468df9ccb4";
+ sha256 = "01xp3lcamqkvl91jg6ly202gdsgf64j39rkrcqxi6v4pbrcv7hz0";
+ };
+ }
+ {
+ goPackagePath = "github.com/peterbourgon/diskv";
+ fetch = {
+ type = "git";
+ url = "https://github.com/peterbourgon/diskv";
+ rev = "5f041e8faa004a95c88a202771f4cc3e991971e6";
+ sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/term";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/term";
+ rev = "cda20d4ac917ad418d86e151eff439648b06185b";
+ sha256 = "08frhz411dwyli5spfxn32d3ni9mrgdav51lmg8a1wpdmw0r0wwp";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "583c0c0531f06d5278b7d917446061adc344b5cd";
+ sha256 = "0nr4mdpfhhk94hq4ymn5b2sxc47b29p1akxd8b0hx4dvdybmipb5";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "a2144134853fc9a27a7b1e3eb4f19f1a76df13c9";
+ sha256 = "0hjjk6k9dq7zllwsw9icdfbli12ii379q2lajd6l7lyw72wy28by";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "a680a1efc54dd51c040b3b5ce4939ea3cf2ea0d1";
+ sha256 = "018zmn4kmg2mbngcciqal54slc3pl4ry5vlv0bw36fcxvnazxnbp";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/oauth2";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/oauth2";
+ rev = "ef147856a6ddbb60760db74283d2424e98c87bff";
+ sha256 = "1q1vm1z40fx1grlrm7az4rln6v5pj9xi5n1cjqg5xgq4dsk9132y";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "ac767d655b305d4e9612f5f6e33120b9176c4ad4";
+ sha256 = "1ds29n5lh4j21hmzxz7vk7hv1k6sixc7f0zsdc9xqdg0j7d212zm";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "f21a4dfb5e38f5895301dc265a8def02365cc3d0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/time";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/time";
+ rev = "fbb02b2291d28baffd63558aa44b4b56f178d650";
+ sha256 = "0jjqcv6rzihlgg4i797q80g1f6ch5diz2kxqh6488gwkb6nds4h4";
+ };
+ }
+ {
+ goPackagePath = "google.golang.org/appengine";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/appengine";
+ rev = "b1f26356af11148e710935ed1ac8a7f5702c7612";
+ sha256 = "1pz202zszg8f35dk5pfhwgcdi3r6dx1l4yk6x6ly7nb4j45zi96x";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/inf.v0";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-inf/inf";
+ rev = "d2d2541c53f18d2a059457998ce2876cc8e67cbf";
+ sha256 = "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-yaml/yaml";
+ rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+ sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/api";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/api";
+ rev = "072894a440bdee3a891dea811fe42902311cd2a3";
+ sha256 = "1hlbfwak4adwkj74jdiw8kmapri9rqmmjssncqiq0xnwlkcyn0ig";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/apimachinery";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/apimachinery";
+ rev = "103fd098999dc9c0c88536f5c9ad2e5da39373ae";
+ sha256 = "04navnpm59d75dhlz07rmay7m2izrf4m0i9xklxzqg7mlk9g20jc";
+ };
+ }
+ {
+ goPackagePath = "k8s.io/client-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kubernetes/client-go";
+ rev = "7d04d0e2a0a1a4d4a1cd6baa432a2301492e4e65";
+ sha256 = "06rszpgckx9gmqz9gbq8wnl39d1dnl28wdgrygj2fhz5prhj0x4s";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kubectx/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kubectx/default.nix
new file mode 100644
index 000000000000..59a7c8300e2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kubectx/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "kubectx";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "ahmetb";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
+ };
+
+ vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ installShellCompletion completion/*
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Fast way to switch between clusters and namespaces in kubectl!";
+ license = licenses.asl20;
+ homepage = "https://github.com/ahmetb/kubectx";
+ maintainers = with maintainers; [ jlesquembre ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kubeprompt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
new file mode 100644
index 000000000000..51369bc1f91e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kubeprompt";
+ version = "0.3.0";
+
+ src = fetchFromGitHub {
+ owner = "jlesquembre";
+ repo = pname;
+ rev = version;
+ sha256 = "1a0xi31bd7n2zrx2z4srhvixlbj028h63dlrjzqxgmgn2w6akbz2";
+ };
+
+ preBuild = ''
+ export buildFlagsArray+=(
+ "-ldflags=
+ -w -s
+ -X github.com/jlesquembre/kubeprompt/pkg/version.Version=${version}")
+ '';
+
+ vendorSha256 = "089lfkvyf00f05kkmr935jbrddf2c0v7m2356whqnz7ad6a2whsi";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Kubernetes prompt";
+ homepage = "https://github.com/jlesquembre/kubeprompt";
+ license = licenses.epl20;
+ maintainers = with maintainers; [ jlesquembre ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kubicorn/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kubicorn/default.nix
new file mode 100644
index 000000000000..67e170f6e25c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kubicorn/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+with stdenv.lib;
+
+buildGoPackage rec {
+ pname = "kubicorn";
+ version = "2018-10-13-${stdenv.lib.strings.substring 0 7 rev}";
+ rev = "4c7f3623e9188fba43778271afe161a4facfb657";
+
+ src = fetchFromGitHub {
+ rev = rev;
+ owner = "kubicorn";
+ repo = "kubicorn";
+ sha256 = "18h5sj4lcivrwjq2hzn7c3g4mblw17zicb5nma8sh7sakwzyg1k9";
+ };
+
+ subPackages = ["."];
+ goPackagePath = "github.com/kubicorn/kubicorn";
+
+ meta = {
+ description = "Simple, cloud native infrastructure for Kubernetes";
+ homepage = "http://kubicorn.io/";
+ maintainers = with stdenv.lib.maintainers; [ offline ];
+ license = stdenv.lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kubie/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kubie/default.nix
new file mode 100644
index 000000000000..1895cd0786dd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kubie/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "kubie";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "sbstp";
+ repo = "kubie";
+ sha256 = "0q1dxry10iaf7zx6vyr0da4ihqx7l8dlyhlqm8qqfz913h2wam8c";
+ };
+
+ cargoSha256 = "13zs2xz3s4732zxsimg7b22d9707ln4gpscznxi13cjkf5as9gbz";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ postInstall = ''
+ installShellCompletion completion/kubie.bash
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Shell independent context and namespace switcher for kubectl";
+ homepage = "https://github.com/sbstp/kubie";
+ license = with licenses; [ zlib ];
+ maintainers = with maintainers; [ illiusdope ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kustomize/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kustomize/default.nix
new file mode 100644
index 000000000000..63a3c7746688
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "kustomize";
+ version = "3.8.1";
+ # rev is the 3.8.1 commit, mainly for kustomize version command output
+ rev = "6a50372dd5686df22750b0c729adaf369fbf193c";
+
+ buildFlagsArray = let t = "sigs.k8s.io/kustomize/api/provenance"; in
+ ''
+ -ldflags=
+ -s -X ${t}.version=${version}
+ -X ${t}.gitCommit=${rev}
+ '';
+
+ src = fetchFromGitHub {
+ owner = "kubernetes-sigs";
+ repo = pname;
+ rev = "kustomize/v${version}";
+ sha256 = "07zdp6xv8viwnaz1qacwhg82dlzcrgb8dls6yz9qk4qcnsk6badx";
+ };
+
+ # avoid finding test and development commands
+ sourceRoot = "source/kustomize";
+
+ vendorSha256 = "01ff3w4hwp4ynqhg8cplv0i2ixs811d2x2j6xbh1lslyyh3z3wc5";
+
+ meta = with lib; {
+ description = "Customization of kubernetes YAML configurations";
+ longDescription = ''
+ kustomize lets you customize raw, template-free YAML files for
+ multiple purposes, leaving the original YAML untouched and usable
+ as is.
+ '';
+ homepage = "https://github.com/kubernetes-sigs/kustomize";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ carlosdagos vdemeester periklis zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/kythe/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/kythe/default.nix
new file mode 100644
index 000000000000..601634b31842
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/kythe/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, binutils , fetchurl, ncurses5 }:
+
+stdenv.mkDerivation rec {
+ version = "0.0.30";
+ pname = "kythe";
+
+ src = fetchurl {
+ url = "https://github.com/kythe/kythe/releases/download/v${version}/${pname}-v${version}.tar.gz";
+ sha256 = "12bwhqkxfbkh3mm4wfvqflwhmbzpmlhlfykdpy6h7p9ih9ky8w6r";
+ };
+
+ buildInputs =
+ [ binutils ];
+
+ doCheck = false;
+
+ dontBuild = true;
+
+ installPhase = ''
+ cd tools
+ for exe in http_server \
+ kythe read_entries triples verifier \
+ write_entries write_tables entrystream; do
+ echo "Patching:" $exe
+ patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $exe
+ patchelf --set-rpath "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ncurses5 ]}" $exe
+ done
+ cd ../
+ cp -R ./ $out
+ ln -s $out/tools $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A pluggable, (mostly) language-agnostic ecosystem for building tools that work with code";
+ longDescription = ''
+ The Kythe project was founded to provide and support tools and standards
+ that encourage interoperability among programs that manipulate source
+ code. At a high level, the main goal of Kythe is to provide a standard,
+ language-agnostic interchange mechanism, allowing tools that operate on
+ source code — including build systems, compilers, interpreters, static
+ analyses, editors, code-review applications, and more — to share
+ information with each other smoothly. '';
+ homepage = "https://kythe.io/";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.mpickering ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix
new file mode 100644
index 000000000000..6720603b2e5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix
@@ -0,0 +1,116 @@
+{ stdenv, rpmextract, patchelf, makeWrapper, file, requireFile, glib, zlib,
+ freetype, fontconfig, xorg, libusb-compat-0_1 }:
+
+stdenv.mkDerivation {
+ name = "diamond-3.10";
+
+ nativeBuildInputs = [ rpmextract patchelf makeWrapper file ];
+
+ src = requireFile {
+ name = "diamond_3_10-base_x64-111-2-x86_64-linux.rpm";
+ url = "http://www.latticesemi.com/view_document?document_id=52180";
+ sha256 = "ec0b370cf8bd55831eeed7c5eadcabacbd6e63ac657c20209d672119a07a5c0f";
+ };
+
+ buildCommand = ''
+ origprefix=usr/local/diamond/3.10_x64
+ prefix=diamond
+
+ echo "Unpacking $src..."
+ rpmextract $src
+
+ # Move $pwd/usr/local/diamond/VERS to $out/diamond, cd.
+ mkdir -p $out/$prefix
+ rmdir $out/$prefix
+ mv $origprefix $out/$prefix
+
+ cd $out
+
+ # Extract all tarballs.
+ for tb in \
+ cae_library/cae_library.tar.gz \
+ embedded_source/embedded_source.tar.gz \
+ ispfpga/ispfpga.tar.gz \
+ synpbase/synpbase.tar.gz \
+ tcltk/tcltk.tar.gz \
+ bin/bin.tar.gz \
+ examples/examples.tar.gz \
+ data/data.tar.gz ; do
+
+ echo "Extracting tarball $prefix/$tb"
+ cd $out/$prefix/$(dirname $tb)
+ tar xf $(basename $tb)
+ rm $(basename $tb)
+ done
+
+ # Patch shebangs in start scripts .
+ cd $out/$prefix/bin/lin64
+ for tool in \
+ programmer \
+ pgrcmd \
+ diamond_env \
+ powercal \
+ model300 \
+ update \
+ diamond \
+ debugger \
+ ddtcmd \
+ cableserver \
+ revealrva \
+ ipexpress \
+ fileutility \
+ diamond ; do
+
+ echo "Patching script $prefix/bin/lin64/$tool..."
+ patchShebangs $tool
+ done
+
+ # Patch executable ELFs.
+ for path in bin/lin64 ispfpga/bin/lin64; do
+ cd $out/$prefix/$path
+ for f in *; do
+ if ! file $f | grep -q "ELF 64-bit LSB executable" ; then
+ continue
+ fi
+ echo "Patching ELF $prefix/$path/$f..."
+ # We force RPATH otherwise libraries from LD_LIBRARY_PATH (which the
+ # tools mangle by themselves) will not be able to find their
+ # dependencies from nix.
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$libPath" --force-rpath \
+ $f
+ done
+ done
+
+ # Remove 32-bit libz.
+ rm $out/$prefix/bin/lin64/libz.{so,so.1}
+
+ # Make wrappers (should these target more than the 'diamond' tool?).
+ # The purpose of these is just to call the target program using its
+ # absolute path - otherwise, it will crash.
+ mkdir -p bin
+ for tool in diamond ; do
+ makeWrapper $out/$prefix/bin/lin64/$tool $out/bin/$tool
+ done
+ '';
+
+ libPath = stdenv.lib.makeLibraryPath [
+ glib zlib freetype fontconfig
+ xorg.libSM xorg.libICE xorg.libXrender xorg.libXext xorg.libX11 xorg.libXt
+ libusb-compat-0_1
+ ];
+
+ meta = {
+ description = "Vendor development tools for Lattice FPGA devices";
+ longDescription = ''
+ Lattice Diamond software is the leading-edge software design environment
+ for cost- sensitive, low-power Lattice FPGA architectures. It is the
+ next-generation replacement for ispLEVER.
+ '';
+ homepage = "http://www.latticesemi.com/latticediamond";
+ license = stdenv.lib.licenses.unfree;
+ maintainers = with stdenv.lib.maintainers; [ q3k ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/lazygit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/lazygit/default.nix
new file mode 100644
index 000000000000..a4107ad1100d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/lazygit/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "lazygit";
+ version = "0.23.2";
+
+ src = fetchFromGitHub {
+ owner = "jesseduffield";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-G/oAKIG0TSEjaVi6vN2wg/apOztGLiqqYLfZy6Tmmgc=";
+ };
+
+ vendorSha256 = null;
+ subPackages = [ "." ];
+
+ buildFlagsArray = [ "-ldflags=-X main.version=${version} -X main.buildSource=nix" ];
+
+ meta = with stdenv.lib; {
+ description = "Simple terminal UI for git commands";
+ homepage = "https://github.com/jesseduffield/lazygit";
+ license = licenses.mit;
+ maintainers = with maintainers; [ fpletz equirosa filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/default.nix
new file mode 100644
index 000000000000..bb8673d4d56b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "leaps";
+ version = "0.9.0";
+
+ goPackagePath = "github.com/Jeffail/leaps";
+
+ src = fetchFromGitHub {
+ owner = "Jeffail";
+ repo = "leaps";
+ sha256 = "1bzas7ixyfsfh81lnvplhx59yghkmnmy5p7jv9rnwp219dwbylpz";
+ rev = "v${version}";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ description = "A pair programming tool and library written in Golang";
+ homepage = "https://github.com/jeffail/leaps/";
+ license = "MIT";
+ maintainers = with stdenv.lib.maintainers; [ qknight ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/deps.nix
new file mode 100644
index 000000000000..ee06659c72ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/leaps/deps.nix
@@ -0,0 +1,165 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/Azure/go-autorest";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Azure/go-autorest";
+ rev = "fc3b03a2d2d1f43fad3007038bd16f044f870722";
+ sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
+ };
+ }
+ {
+ goPackagePath = "github.com/Jeffail/gabs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/Jeffail/gabs";
+ rev = "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
+ sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
+ };
+ }
+ {
+ goPackagePath = "github.com/amir/raidman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/amir/raidman";
+ rev = "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
+ sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
+ };
+ }
+ {
+ goPackagePath = "github.com/azure/azure-sdk-for-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/azure/azure-sdk-for-go";
+ rev = "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
+ sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
+ };
+ }
+ {
+ goPackagePath = "github.com/cenkalti/backoff";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cenkalti/backoff";
+ rev = "61153c768f31ee5f130071d08fc82b85208528de";
+ sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
+ };
+ }
+ {
+ goPackagePath = "github.com/dgrijalva/jwt-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/dgrijalva/jwt-go";
+ rev = "dbeaa9332f19a944acb5736b4456cfcc02140e29";
+ sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
+ };
+ }
+ {
+ goPackagePath = "github.com/elazarl/go-bindata-assetfs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/elazarl/go-bindata-assetfs";
+ rev = "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
+ sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
+ };
+ }
+ {
+ goPackagePath = "github.com/garyburd/redigo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/garyburd/redigo";
+ rev = "d1ed5c67e5794de818ea85e6b522fda02623a484";
+ sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
+ };
+ }
+ {
+ goPackagePath = "github.com/go-sql-driver/mysql";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-sql-driver/mysql";
+ rev = "a0583e0143b1624142adab07e0e97fe106d99561";
+ sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
+ };
+ }
+ {
+ goPackagePath = "github.com/golang/protobuf";
+ fetch = {
+ type = "git";
+ url = "https://github.com/golang/protobuf";
+ rev = "925541529c1fa6821df4e44ce2723319eb2be768";
+ sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
+ };
+ }
+ {
+ goPackagePath = "github.com/gorilla/websocket";
+ fetch = {
+ type = "git";
+ url = "https://github.com/gorilla/websocket";
+ rev = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+ sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+ };
+ }
+ {
+ goPackagePath = "github.com/kardianos/osext";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kardianos/osext";
+ rev = "ae77be60afb1dcacde03767a8c37337fad28ac14";
+ sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+ };
+ }
+ {
+ goPackagePath = "github.com/lib/pq";
+ fetch = {
+ type = "git";
+ url = "https://github.com/lib/pq";
+ rev = "88edab0803230a3898347e77b474f8c1820a1f20";
+ sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
+ };
+ }
+ {
+ goPackagePath = "github.com/marstr/guid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/marstr/guid";
+ rev = "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
+ sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
+ };
+ }
+ {
+ goPackagePath = "github.com/satori/go.uuid";
+ fetch = {
+ type = "git";
+ url = "https://github.com/satori/go.uuid";
+ rev = "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
+ sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
+ sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/alexcesaro/statsd.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alexcesaro/statsd";
+ rev = "7fea3f0d2fab1ad973e641e51dba45443a311a90";
+ sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://github.com/go-yaml/yaml";
+ rev = "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+ sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix
new file mode 100644
index 000000000000..6144b533d6de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+buildGoPackage rec {
+ pname = "librarian-puppet-go";
+ version = "0.3.9";
+
+ goPackagePath = "github.com/tmtk75/librarian-puppet-go";
+
+ src = fetchFromGitHub {
+ owner = "tmtk75";
+ repo = "librarian-puppet-go";
+ rev = "v${version}";
+ sha256 = "19x2hz3b8xkhy2nkyjg6s4qvs55mh84fvjwp157a86dmxwkdf45y";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ inherit (src.meta) homepage;
+ description = "librarian-puppet implementation in go";
+ license = licenses.mit;
+ maintainers = with maintainers; [ womfoo ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/deps.nix
new file mode 100644
index 000000000000..e5729707d8ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/librarian-puppet-go/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/jawher/mow.cli";
+ fetch = {
+ type = "git";
+ url = "https://github.com/jawher/mow.cli";
+ rev = "3ff64ca21987cfa628bd8d1865162b7ccd6107d7";
+ sha256 = "0vws79q4x3c9kjdsin3vw5200sinkxag3bfa0n9k69svsb222bij";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrok/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrok/default.nix
new file mode 100644
index 000000000000..4e104a79d5d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrok/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, pkgconfig, libzip, glib, libusb1, libftdi1, check
+, libserialport, librevisa, doxygen, glibmm, python
+, version ? "0.5.1", sha256 ? "171b553dir5gn6w4f7n37waqk62nq2kf1jykx4ifjacdz5xdw3z4"
+}:
+
+stdenv.mkDerivation rec {
+ inherit version;
+ pname = "libsigrok";
+
+ src = fetchurl {
+ url = "https://sigrok.org/download/source/${pname}/${pname}-${version}.tar.gz";
+ inherit sha256;
+ };
+
+ firmware = fetchurl {
+ url = "https://sigrok.org/download/binary/sigrok-firmware-fx2lafw/sigrok-firmware-fx2lafw-bin-0.1.6.tar.gz";
+ sha256 = "14sd8xqph4kb109g073daiavpadb20fcz7ch1ipn0waz7nlly4sw";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libzip glib libusb1 libftdi1 check libserialport
+ librevisa doxygen glibmm python
+ ];
+
+ postInstall = ''
+ mkdir -p "$out/share/sigrok-firmware/"
+ tar --strip-components=1 -xvf "${firmware}" -C "$out/share/sigrok-firmware/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Core library of the sigrok signal analysis software suite";
+ homepage = "https://sigrok.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrokdecode/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrokdecode/default.nix
new file mode 100644
index 000000000000..e78afc1a8614
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/libsigrokdecode/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, glib, python3, libsigrok, check }:
+
+stdenv.mkDerivation rec {
+ name = "libsigrokdecode-0.5.3";
+
+ src = fetchurl {
+ url = "https://sigrok.org/download/source/libsigrokdecode/${name}.tar.gz";
+ sha256 = "1h1zi1kpsgf6j2z8j8hjpv1q7n49i3fhqjn8i178rka3cym18265";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib python3 libsigrok check ];
+
+ meta = with stdenv.lib; {
+ description = "Protocol decoding library for the sigrok signal analysis software suite";
+ homepage = "https://sigrok.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix
new file mode 100644
index 000000000000..c418c16b6704
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/Literate/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchgit, dmd, dub }:
+
+stdenv.mkDerivation {
+ name = "Literate-2019-01-08";
+
+ src = fetchgit {
+ url = "https://github.com/zyedidia/Literate.git";
+ rev = "e20c5c86713701d4d17fd2881779d758a27a3e5a";
+ sha256 = "1pr7iipcnp6jxi13341p5b3szdrvs7aixpfbwifj6lgbb45vg9sm";
+ };
+
+ buildInputs = [ dmd dub ];
+
+ installPhase = "install -D bin/lit $out/bin/lit";
+
+ meta = with stdenv.lib; {
+ description = "A literate programming tool for any language";
+ homepage = "http://literate.zbyedidia.webfactional.com/";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix
new file mode 100644
index 000000000000..82805af5804f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/eweb/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, python3, asciidoc }:
+
+stdenv.mkDerivation rec {
+ pname = "eweb";
+ version = "9.10";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/eweb/${pname}-${version}.tar.bz2";
+ sha256 = "1xy7vm2sj5q6s620fm25klmnwnz9xkrxmx4q2f8h6c85ydisayd5";
+ };
+
+ buildInputs = [ python3 asciidoc ];
+
+ installPhase = ''
+ install -d $out/bin $out/share/doc/${pname}-${version}
+ cp etangle.py $out/bin
+ cp etangle.w etangle.html $out/share/doc/${pname}-${version}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://eweb.sourceforge.net/";
+ description = "An Asciidoc-based literate programming tool, written in Python";
+ platforms = platforms.linux;
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
new file mode 100644
index 000000000000..9d27351f15d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/funnelweb/default.nix
@@ -0,0 +1,31 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+
+ name = "funnelweb-${meta.version}";
+ src = fetchurl {
+ url = "http://www.ross.net/funnelweb/download/funnelweb_v320/funnelweb_v320_source.tar.gz";
+ sha256 = "0zqhys0j9gabrd12mnk8ibblpc8dal4kbl8vnhxmdlplsdpwn4wg";
+ };
+
+ buildPhase = ''
+ cd source
+ ${stdenv.cc}/bin/cc -D__linux__ -o fw *.c
+ '';
+
+ installPhase = ''
+ install -d $out/bin
+ install fw $out/bin/fw
+ '';
+
+ meta = with stdenv.lib; {
+ version = "3.20";
+ description = "A simple, reliable literate-programming macro preprocessor";
+ homepage = "http://www.ross.net/funnelweb/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.AndersonTorres ];
+ };
+}
+#TODO: implement it for other platforms
+#TODO: Documentation files
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
new file mode 100644
index 000000000000..52586939c1df
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, fetchFromGitHub, gawk, groff, icon-lang ? null }:
+
+let noweb = stdenv.mkDerivation rec {
+ pname = "noweb";
+ version = "2.12";
+
+ src = fetchFromGitHub {
+ owner = "nrnrnr";
+ repo = "noweb";
+ rev = "v${builtins.replaceStrings ["."] ["_"] version}";
+ sha256 = "1160i2ghgzqvnb44kgwd6s3p4jnk9668rmc15jlcwl7pdf3xqm95";
+ };
+
+ patches = [ ./no-FAQ.patch ];
+
+ nativeBuildInputs = [ groff ] ++ stdenv.lib.optionals (!isNull icon-lang) [ icon-lang ];
+
+ preBuild = ''
+ mkdir -p "$out/lib/noweb"
+ cd src
+ '';
+
+ makeFlags = stdenv.lib.optionals (!isNull icon-lang) [
+ "LIBSRC=icon"
+ "ICONC=icont"
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ "CC=clang"
+ ];
+
+
+ installFlags = [
+ ];
+
+ preInstall = ''
+ mkdir -p "$tex/tex/latex/noweb"
+ installFlagsArray+=( \
+ "BIN=${placeholder "out"}/bin" \
+ "ELISP=${placeholder "out"}/share/emacs/site-lisp" \
+ "LIB=${placeholder "out"}/lib/noweb" \
+ "MAN=${placeholder "out"}/share/man" \
+ "TEXINPUTS=${placeholder "tex"}/tex/latex/noweb" \
+ )
+ '';
+
+ installTargets = [ "install-code" "install-tex" "install-elisp" ];
+
+ postInstall = ''
+ substituteInPlace "$out/bin/cpif" --replace "PATH=/bin:/usr/bin" ""
+
+ for f in $out/bin/no{index,roff,roots,untangle,web} \
+ $out/lib/noweb/to{ascii,html,roff,tex} \
+ $out/lib/noweb/{bt,empty}defn \
+ $out/lib/noweb/{noidx,unmarkup}; do
+ # NOTE: substituteInPlace breaks Icon binaries, so make sure the script
+ # uses (n)awk before calling.
+ if grep -q nawk "$f"; then
+ substituteInPlace "$f" --replace "nawk" "${gawk}/bin/awk"
+ fi
+ done
+
+ # HACK: This is ugly, but functional.
+ PATH=$out/bin:$PATH make -BC xdoc
+ make "''${installFlagsArray[@]}" install-man
+
+ ln -s "$tex" "$out/share/texmf"
+ '';
+
+ outputs = [ "out" "tex" ];
+
+ tlType = "run";
+ passthru.pkgs = [ noweb.tex ];
+
+ meta = with stdenv.lib; {
+ description = "A simple, extensible literate-programming tool";
+ homepage = "https://www.cs.tufts.edu/~nr/noweb";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ yurrriq ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}; in noweb
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
new file mode 100644
index 000000000000..3230924990b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/noweb/no-FAQ.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile 2006-06-12 22:14:20.000000000 +0200
++++ b/src/Makefile 2010-06-17 11:30:11.804018145 +0200
+@@ -198,7 +198,7 @@
+ (cd elisp; ci -l $(CINAME) $(CIMSG) *.el)
+ ci -l $(CINAME) $(CIMSG) Makefile.nw INSTALL INSTALL.DOS README FAQ COPYRIGHT nwmake *.nw
+
+-source: FAQ
++source:
+ for i in c shell lib xdoc icon awk tex; do (cd $$i; make CPIF=">" source); done
+ sleep 1
+ for i in c shell lib xdoc icon awk tex; do (cd $$i; make touch); done
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix
new file mode 100644
index 000000000000..1f4fba681c35
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/literate-programming/nuweb/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl, tex}:
+
+stdenv.mkDerivation rec {
+
+ pname = "nuweb";
+ version = "1.60";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/nuweb/${pname}-${version}.tar.gz";
+ sha256 = "08xmwq48biy2c1fr8wnyknyvqs9jfsj42cb7fw638xqv35f0xxvl";
+ };
+
+ buildInputs = [ tex ];
+
+ patchPhase = ''
+ sed -ie 's|nuweb -r|./nuweb -r|' Makefile
+ '';
+ buildPhase = ''
+ make nuweb
+ make nuweb.pdf nuwebdoc.pdf all
+ '';
+ installPhase = ''
+ install -d $out/bin $out/share/man/man1 $out/share/doc/${pname}-${version} $out/share/emacs/site-lisp
+ cp nuweb $out/bin
+ cp nuweb.el $out/share/emacs/site-lisp
+ gzip -c nuweb.1 > $out/share/man/man1/nuweb.1.gz
+ cp htdocs/index.html nuweb.w nuweb.pdf nuwebdoc.pdf README $out/share/doc/${pname}-${version}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A simple literate programming tool";
+ homepage = "http://nuweb.sourceforge.net";
+ license = licenses.free;
+ maintainers = [ maintainers.AndersonTorres ];
+ platforms = platforms.unix;
+ };
+}
+# TODO: nuweb.el Emacs integration
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/makerpm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/makerpm/default.nix
new file mode 100644
index 000000000000..a05615a22d9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/makerpm/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, zlib, libarchive, openssl }:
+
+stdenv.mkDerivation rec {
+ version = "1.0";
+ pname = "makerpm";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp makerpm $out/bin
+ '';
+
+ buildInputs = [ zlib libarchive openssl ];
+
+ src = fetchFromGitHub {
+ owner = "ivan-tkatchev";
+ repo = "makerpm";
+ rev = version;
+ sha256 = "089dkbh5705ppyi920rd0ksjc0143xmvnhm8qrx93rsgwc1ggi1y";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ivan-tkatchev/makerpm/";
+ description = "A clean, simple RPM packager reimplemented completely from scratch";
+ license = licenses.free;
+ platforms = platforms.all;
+ maintainers = [ maintainers.ivan-tkatchev ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/default.nix
new file mode 100644
index 000000000000..06cd23e40f4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "maligned-unstable";
+ version = "2018-07-07";
+ rev = "6e39bd26a8c8b58c5a22129593044655a9e25959";
+
+ goPackagePath = "github.com/mdempsky/maligned";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "mdempsky";
+ repo = "maligned";
+ sha256 = "08inr5xjqv9flrlyhqd8ck1q26y5xb6iilz0xkb6bqa4dl5ialhi";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "Tool to detect Go structs that would take less memory if their fields were sorted";
+ homepage = "https://github.com/mdempsky/maligned";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/deps.nix
new file mode 100644
index 000000000000..afe5e50e47bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/maligned/deps.nix
@@ -0,0 +1,20 @@
+[
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "96e9e165b75e735822645eff82850b08c377be36";
+ sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/manul/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/manul/default.nix
new file mode 100644
index 000000000000..71010149a921
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/manul/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ name = "manul-unstable-2016-09-30";
+
+ goPackagePath = "github.com/kovetskiy/manul";
+ excludedPackages = "tests";
+
+ src = fetchFromGitHub {
+ owner = "kovetskiy";
+ repo = "manul";
+ rev = "7bddb5404b9ecc66fd28075bb899c2d6dc7a1c51";
+ sha256 = "06kglxdgj1dfpc9bdnvhsh8z0c1pdbmwmfx4km01wpppzk06dnvm";
+ };
+
+ deleteVendor = true;
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "The madness vendoring utility for Golang programs";
+ homepage = "https://github.com/kovetskiy/manul";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/manul/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/manul/deps.nix
new file mode 100644
index 000000000000..e99a597b0783
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/manul/deps.nix
@@ -0,0 +1,75 @@
+# This file was generated by go2nix.
+[
+ {
+ goPackagePath = "github.com/PuerkitoBio/goquery";
+ fetch = {
+ type = "git";
+ url = "https://github.com/PuerkitoBio/goquery";
+ rev = "3cb3b8656883c2cc3deb9c643d93ea6e5157e425";
+ sha256 = "0qhyssjwv98jncsiph95iz77sygkismvpprsalqi3xm3k50xi6r7";
+ };
+ }
+ {
+ goPackagePath = "github.com/andybalholm/cascadia";
+ fetch = {
+ type = "git";
+ url = "https://github.com/andybalholm/cascadia";
+ rev = "349dd0209470eabd9514242c688c403c0926d266";
+ sha256 = "12ikz849vkdb3dsdn6mdpkihvm0hbmkplyi0qdcm7s4ib4n003b1";
+ };
+ }
+ {
+ goPackagePath = "github.com/kovetskiy/godocs";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kovetskiy/godocs";
+ rev = "2d9428f80f3442e07f67daf7ba378cd0ff6cfe24";
+ sha256 = "128dlvxqk31crzl9p3ps0nir724cjzxv4lxpgdvsir0wvfp8f83j";
+ };
+ }
+ {
+ goPackagePath = "github.com/reconquest/executil-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/reconquest/executil-go";
+ rev = "e72bce509b1a5e89ab21f29c92830d4304620765";
+ sha256 = "06z05hl4bym5agv0h1vgksj0mx0l4987ganwqcfb153w7pclvan3";
+ };
+ }
+ {
+ goPackagePath = "github.com/reconquest/hierr-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/reconquest/hierr-go";
+ rev = "bbf802f3f943e7b6a364a485ccf90807f3bfcc0e";
+ sha256 = "1v3fssw881vcawc2abvp8abwb7705yzxrb0khbzmn8qvdpqwh7hl";
+ };
+ }
+ {
+ goPackagePath = "github.com/reconquest/ser-go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/reconquest/ser-go";
+ rev = "47f084a1e4a5433ac3d6ab6cfe8c1e30028a4d76";
+ sha256 = "1hgafiqc3mlazs2zg4rqjm4sasy2gjrjl64cy8mmlg5cayvbj4hq";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "c197bcf24cde29d3f73c7b4ac6fd41f4384e8af6";
+ sha256 = "1y2bbghi594m8p4pcm9pwrzql06179xj6zvhaghwcc6y0l48rbgp";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "6acef71eb69611914f7a30939ea9f6e194c78172";
+ sha256 = "1fcsv50sbq0lpzrhx3m9jw51wa255fsbqjwsx9iszq4d0gysnnvc";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mbed-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mbed-cli/default.nix
new file mode 100644
index 000000000000..127fa1bef863
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mbed-cli/default.nix
@@ -0,0 +1,34 @@
+{ lib, python3Packages, git, mercurial }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "mbed-cli";
+ version = "1.9.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1228plh55id03qywsw0ai88ypdpbh9iz18jfcyhn21pci7mj77fv";
+ };
+
+ checkInputs = [
+ git
+ mercurial
+ pytest
+ ];
+
+ checkPhase = ''
+ export GIT_COMMITTER_NAME=nixbld
+ export EMAIL=nixbld@localhost
+ export GIT_COMMITTER_DATE=$SOURCE_DATE_EPOCH
+ pytest test
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/ARMmbed/mbed-cli";
+ description = "Arm Mbed Command Line Interface";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ rvolosatovs ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mdk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mdk/default.nix
new file mode 100644
index 000000000000..2a0b18806011
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mdk/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, intltool, pkgconfig, glib }:
+
+stdenv.mkDerivation {
+ name = "gnu-mdk-1.2.10";
+ src = fetchurl {
+ url = "https://ftp.gnu.org/gnu/mdk/v1.2.10/mdk-1.2.10.tar.gz";
+ sha256 = "1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h";
+ };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ intltool glib ];
+ postInstall = ''
+ mkdir -p $out/share/emacs/site-lisp/
+ cp -v ./misc/*.el $out/share/emacs/site-lisp
+ '';
+
+ meta = {
+ description = "GNU MIX Development Kit (MDK)";
+ homepage = "https://www.gnu.org/software/mdk/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/metals/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/metals/default.nix
new file mode 100644
index 000000000000..55125fbeff45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/metals/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, lib, coursier, jdk, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "metals";
+ version = "0.9.4";
+
+ deps = stdenv.mkDerivation {
+ name = "${pname}-deps-${version}";
+ buildCommand = ''
+ export COURSIER_CACHE=$(pwd)
+ ${coursier}/bin/coursier fetch org.scalameta:metals_2.12:${version} \
+ -r bintray:scalacenter/releases \
+ -r sonatype:snapshots > deps
+ mkdir -p $out/share/java
+ cp -n $(< deps) $out/share/java/
+ '';
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = "1k07gg13z3kambvvrxsc27781cd5npb2a50ahdbj7x6j6h67k0pg";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jdk deps ];
+
+ phases = [ "installPhase" ];
+
+ extraJavaOpts = "-XX:+UseG1GC -XX:+UseStringDeduplication -Xss4m -Xms100m";
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ # This variant is not targeted at any particular client, clients are
+ # expected to declare their supported features in initialization options.
+ makeWrapper ${jre}/bin/java $out/bin/metals \
+ --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+ --add-flags "${extraJavaOpts} -cp $CLASSPATH scala.meta.metals.Main"
+
+ # Further variants targeted at clients with featuresets pre-set.
+ makeWrapper ${jre}/bin/java $out/bin/metals-emacs \
+ --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+ --add-flags "${extraJavaOpts} -Dmetals.client=emacs -cp $CLASSPATH scala.meta.metals.Main"
+
+ makeWrapper ${jre}/bin/java $out/bin/metals-vim \
+ --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+ --add-flags "${extraJavaOpts} -Dmetals.client=coc.nvim -cp $CLASSPATH scala.meta.metals.Main"
+
+ makeWrapper ${jre}/bin/java $out/bin/metals-vim-lsc \
+ --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+ --add-flags "${extraJavaOpts} -Dmetals.client=vim-lsc -cp $CLASSPATH scala.meta.metals.Main"
+
+ makeWrapper ${jre}/bin/java $out/bin/metals-sublime \
+ --prefix PATH : ${lib.makeBinPath [ jdk ]} \
+ --add-flags "${extraJavaOpts} -Dmetals.client=sublime -cp $CLASSPATH scala.meta.metals.Main"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://scalameta.org/metals/";
+ license = licenses.asl20;
+ description = "Work-in-progress language server for Scala";
+ maintainers = with maintainers; [ ceedubs tomahna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/micronaut/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/micronaut/default.nix
new file mode 100644
index 000000000000..5d032d42108f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/micronaut/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchzip, jdk, makeWrapper, installShellFiles }:
+
+stdenv.mkDerivation rec {
+ pname = "micronaut";
+ version = "1.3.7";
+
+ src = fetchzip {
+ url = "https://github.com/micronaut-projects/micronaut-core/releases/download/v${version}/${pname}-${version}.zip";
+ sha256 = "1f9fhp10fdm18g33kxl70l6l3x1k8p81h2c3zahjmhlg0sam78zw";
+ };
+
+ nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+ installPhase = ''
+ runHook preInstall
+ rm bin/mn.bat
+ cp -r . $out
+ wrapProgram $out/bin/mn \
+ --prefix JAVA_HOME : ${jdk}
+ installShellCompletion --bash --name mn.bash bin/mn_completion
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Modern, JVM-based, full-stack framework for building microservice applications";
+ longDescription = ''
+ Micronaut is a modern, JVM-based, full stack microservices framework
+ designed for building modular, easily testable microservice applications.
+ Reflection-based IoC frameworks load and cache reflection data for
+ every single field, method, and constructor in your code, whereas with
+ Micronaut, your application startup time and memory consumption are
+ not bound to the size of your codebase.
+ '';
+ homepage = "https://micronaut.io/";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ moaxcp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/default.nix
new file mode 100644
index 000000000000..bf182a1ae418
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, flex, bison }:
+let
+ version = "2.4.3";
+in
+stdenv.mkDerivation {
+ pname = "minizinc";
+ inherit version;
+
+ buildInputs = [ cmake flex bison ];
+
+ src = fetchFromGitHub {
+ owner = "MiniZinc";
+ repo = "libminizinc";
+ rev = version;
+ sha256 = "0mahf621zwwywimly5nd6j39j7qr48k5p7zwpfqnjq4wn010mbf8";
+ };
+
+ patches = [
+ # Fix build with newer Bison versions:
+ # https://github.com/MiniZinc/libminizinc/issues/389
+ (fetchpatch {
+ url = "https://github.com/MiniZinc/libminizinc/commit/d3136f6f198d3081943c17ac6890dbe14a81d112.diff";
+ sha256 = "1f4wxn9422ndgq6dd0vqdxm2313srm7gn9nh82aas2xijdxlmz2c";
+ })
+ (fetchpatch {
+ name = "bison-3.7-compat-1.patch";
+ url = "https://github.com/MiniZinc/libminizinc/commit/8d4dcf302e78231f7c2665150e8178cacd06f91c.patch";
+ sha256 = "1wgciyrqijv7b4wqha94is5skji8j7b9wq6fkdsnsimfd3xpxhqw";
+ })
+ (fetchpatch {
+ name = "bison-3.7-compat-2.patch";
+ url = "https://github.com/MiniZinc/libminizinc/commit/952ffda0bd23dc21f83d3e3f080ea5b3a414e8e0.patch";
+ sha256 = "0cnsfqw0hwm7rmazqnb99725rm2vdwab75vdpr5x5l3kjwsn76rj";
+ })
+ ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.minizinc.org/";
+ description = "MiniZinc is a medium-level constraint modelling language";
+
+ longDescription = ''
+ MiniZinc is a medium-level constraint modelling
+ language. It is high-level enough to express most
+ constraint problems easily, but low-level enough
+ that it can be mapped onto existing solvers easily and consistently.
+ It is a subset of the higher-level language Zinc.
+ '';
+
+ license = licenses.mpl20;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.sheenobu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/ide.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/ide.nix
new file mode 100644
index 000000000000..aedf2ab881dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/minizinc/ide.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, qtbase, qtwebengine, qtwebkit, qmake, makeWrapper, minizinc }:
+let
+ version = "2.4.3";
+in
+stdenv.mkDerivation {
+ pname = "minizinc-ide";
+ inherit version;
+
+ nativeBuildInputs = [ qmake makeWrapper ];
+ buildInputs = [ qtbase qtwebengine qtwebkit ];
+
+ src = fetchFromGitHub {
+ owner = "MiniZinc";
+ repo = "MiniZincIDE";
+ rev = version;
+ sha256 = "0dfqh73rnp00336pyr1hlgl1wb4m2kh28zvdkamjgml60gmg6wdr";
+ };
+
+ sourceRoot = "source/MiniZincIDE";
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/MiniZincIDE --prefix PATH ":" ${stdenv.lib.makeBinPath [ minizinc ]}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.minizinc.org/";
+ description = "IDE for MiniZinc, a medium-level constraint modelling language";
+
+ longDescription = ''
+ MiniZinc is a medium-level constraint modelling
+ language. It is high-level enough to express most
+ constraint problems easily, but low-level enough
+ that it can be mapped onto existing solvers easily and consistently.
+ It is a subset of the higher-level language Zinc.
+ '';
+
+ license = licenses.mpl20;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix
new file mode 100644
index 000000000000..c95a340181c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-compliance-checker/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, ctags, perl, binutils, abi-dumper }:
+
+stdenv.mkDerivation rec {
+ pname = "abi-compliance-checker";
+ version = "2.3";
+
+ src = fetchFromGitHub {
+ owner = "lvc";
+ repo = "abi-compliance-checker";
+ rev = version;
+ sha256 = "1f1f9j2nf9j83sfl2ljadch99v6ha8rq8xm7ax5akc05hjpyckij";
+ };
+
+ buildInputs = [ binutils ctags perl ];
+ propagatedBuildInputs = [ abi-dumper ];
+
+ makeFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://lvc.github.io/abi-compliance-checker";
+ description = "A tool for checking backward API/ABI compatibility of a C/C++ library";
+ license = licenses.lgpl21;
+ maintainers = [ maintainers.bhipple ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix
new file mode 100644
index 000000000000..3d11d25560dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/abi-dumper/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, ctags, perl, elfutils, vtable-dumper }:
+
+stdenv.mkDerivation rec {
+ pname = "abi-dumper";
+ version = "1.1";
+
+ src = fetchFromGitHub {
+ owner = "lvc";
+ repo = "abi-dumper";
+ rev = version;
+ sha256 = "1byhw132aj7a5a5zh5s3pnjlrhdk4cz6xd5irp1y08jl980qba5j";
+ };
+
+ patchPhase = ''
+ substituteInPlace abi-dumper.pl \
+ --replace eu-readelf ${elfutils}/bin/eu-readelf \
+ --replace vtable-dumper ${vtable-dumper}/bin/vtable-dumper \
+ --replace '"ctags"' '"${ctags}/bin/ctags"'
+ '';
+
+ buildInputs = [ elfutils ctags perl vtable-dumper ];
+
+ preBuild = "mkdir -p $out";
+ makeFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/lvc/abi-dumper";
+ description = "Dump ABI of an ELF object containing DWARF debug info";
+ license = licenses.lgpl21;
+ maintainers = [ maintainers.bhipple ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/act/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/act/default.nix
new file mode 100644
index 000000000000..9456335d72ad
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "act";
+ version = "0.2.16";
+
+ src = fetchFromGitHub {
+ owner = "nektos";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zhn6av1adphkk9g13m5na63r8fqcjw8wibcja9v9mbw886zcc3p";
+ };
+
+ vendorSha256 = "0bcrw3hf92m7n58lrlm0vj1wiwwy82q2rl1a725q3d6xwvi5kh9h";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with lib; {
+ description = "Run your GitHub Actions locally";
+ homepage = "https://github.com/nektos/act";
+ changelog = "https://github.com/nektos/act/releases/tag/v${version}";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
new file mode 100644
index 000000000000..fcddf1d0cacc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchFromGitHub, php, flex }:
+
+# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
+# invoked and complains about it being an unknown toolset. We could use `makeWrapper`, but
+# then we’d need to still craft a script that does the `php libexec/arcanist/bin/...` dance
+# anyway... So just do everything at once.
+let makeArcWrapper = toolset: ''
+ cat << WRAPPER > $out/bin/${toolset}
+ #!$shell -e
+ export PATH='${php}/bin/'\''${PATH:+':'}\$PATH
+ exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
+ WRAPPER
+ chmod +x $out/bin/${toolset}
+'';
+
+in
+
+stdenv.mkDerivation {
+ pname = "arcanist";
+ version = "20200711";
+
+ src = fetchFromGitHub {
+ owner = "phacility";
+ repo = "arcanist";
+ rev = "2565cc7b4d1dbce6bc7a5b3c4e72ae94be4712fe";
+ sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw";
+ };
+ buildInputs = [ php flex ];
+
+ postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
+ substituteInPlace support/xhpast/Makefile \
+ --replace "-minline-all-stringops" ""
+ '';
+
+ buildPhase = ''
+ make xhpast -C support/xhpast
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin $out/libexec
+ make install -C support/xhpast
+ cp -R $src $out/libexec/arcanist
+
+ ${makeArcWrapper "arc"}
+ ${makeArcWrapper "phage"}
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/arc help diff -- > /dev/null
+ $out/bin/phage help alias -- > /dev/null
+ '';
+
+ meta = {
+ description = "Command line interface to Phabricator";
+ homepage = "http://phabricator.org";
+ license = stdenv.lib.licenses.asl20;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/argbash/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/argbash/default.nix
new file mode 100644
index 000000000000..0c0511ec7922
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/argbash/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, autoconf, runtimeShell, python3Packages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ pname = "argbash";
+
+ version = "2.10.0";
+
+ src = fetchFromGitHub {
+ owner = "matejak";
+ repo = "argbash";
+ rev = "${version}";
+ sha256 = "1xdhpbnc0xjv6ydcm122hhdjcl77jhiqnccjfqjp3cd1lfmzvg8v";
+ };
+
+ sourceRoot = "source/resources";
+
+ postPatch = ''
+ chmod -R +w ..
+ patchShebangs ..
+ substituteInPlace Makefile \
+ --replace '/bin/bash' "${runtimeShell}"
+ '';
+
+ nativeBuildInputs = [ autoconf python3Packages.docutils makeWrapper ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ postInstall = ''
+ wrapProgram $out/bin/argbash \
+ --prefix PATH : '${autoconf}/bin'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Bash argument parsing code generator";
+ homepage = "https://argbash.io/";
+ license = licenses.free; # custom license. See LICENSE in source repo.
+ maintainers = with maintainers; [ rencire ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/asls/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/asls/default.nix
new file mode 100644
index 000000000000..5b53456deac6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/asls/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchurl
+, erlangR22
+}:
+
+stdenv.mkDerivation rec {
+ pname = "asls";
+ version = "0.5.0";
+
+ src = fetchurl {
+ url = "https://github.com/saulecabrera/asls/releases/download/v${version}/bin.tar.gz";
+ sha256 = "1h6r2lbf54aylzmbiy74ys42fhjv9q824bdrcp40gxx1v2yjc5h5";
+ };
+
+ buildInputs = [ erlangR22 ];
+ installPhase = "install -Dm755 -t $out/bin asls";
+
+ meta = with stdenv.lib; {
+ description = "AssemblyScript Language Server";
+ homepage = "https://github.com/saulecabrera/asls";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ saulecabrera ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/astyle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/astyle/default.nix
new file mode 100644
index 000000000000..66e972826cb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/astyle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+ pname = "astyle";
+ version = "3.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${pname}/${pname}_${version}_linux.tar.gz";
+ sha256 = "1ms54wcs7hg1bsywqwf2lhdfizgbk7qxc9ghasxk8i99jvwlrk6b";
+ };
+
+ # lots of hardcoded references to /usr
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace ' /usr/' " $out/"
+ '';
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with lib; {
+ description = "Source code indenter, formatter, and beautifier for C, C++, C# and Java";
+ homepage = "https://astyle.sourceforge.net/";
+ license = licenses.lgpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix
new file mode 100644
index 000000000000..05afa379f99a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autobuild/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, makeWrapper, perl, openssh, rsync }:
+
+stdenv.mkDerivation rec {
+ name = "autobuild-5.3";
+
+ src = fetchurl {
+ url = "http://savannah.spinellicreations.com/autobuild/${name}.tar.gz";
+ sha256 = "0gv7g61ja9q9zg1m30k4snqwwy1kq7b4df6sb7d2qra7kbdq8af1";
+ };
+
+ buildInputs = [ makeWrapper perl openssh rsync ];
+
+ doCheck = true;
+
+ meta = {
+ description = "Continuous integration tool";
+
+ longDescription = ''
+ Autobuild is a package that process output from building
+ software, primarily focused on packages using Autoconf and
+ Automake, and then generate a HTML summary file, containing
+ links to each build log.
+
+ Autobuild can also help you automate building your project on
+ many systems concurrently. Users with accounts on the
+ SourceForge compile farms will be able to invoke a parallel
+ build of their Autoconf/Automake based software, and produce a
+ summary of the build status, after reading the manual.
+ '';
+
+ homepage = "https://josefsson.org/autobuild/";
+ license = stdenv.lib.licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix
new file mode 100644
index 000000000000..f002346c9949
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf-archive/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, xz }:
+
+stdenv.mkDerivation rec {
+ pname = "autoconf-archive";
+ version = "2019.01.06";
+
+ src = fetchurl {
+ url = "mirror://gnu/autoconf-archive/autoconf-archive-${version}.tar.xz";
+ sha256 = "0gqya7nf4j5k98dkky0c3bnr0paciya91vkqazg7knlq621mq68p";
+ };
+
+ buildInputs = [ xz ];
+
+ meta = with stdenv.lib; {
+ description = "Archive of autoconf m4 macros";
+ homepage = "https://www.gnu.org/software/autoconf-archive/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix
new file mode 100644
index 000000000000..424dff8541bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.13.nix
@@ -0,0 +1,40 @@
+{stdenv, fetchurl, m4, perl, lzma}:
+
+stdenv.mkDerivation rec {
+ name = "autoconf-2.13";
+
+ src = fetchurl {
+ url = "mirror://gnu/autoconf/${name}.tar.gz";
+ sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh";
+ };
+
+ nativebuildInputs = [ lzma ];
+ buildInputs = [ m4 perl ];
+
+ doCheck = true;
+
+ # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ postInstall = ''ln -s autoconf "$out"/bin/autoconf-2.13'';
+
+ meta = {
+ homepage = "https://www.gnu.org/software/autoconf/";
+ description = "Part of the GNU Build System";
+ branch = "2.13";
+
+ longDescription = ''
+ GNU Autoconf is an extensible package of M4 macros that produce
+ shell scripts to automatically configure software source code
+ packages. These scripts can adapt the packages to many kinds of
+ UNIX-like systems without manual user intervention. Autoconf
+ creates a configuration script for a package from a template
+ file that lists the operating system features that the package
+ can use, in the form of M4 macro calls.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.64.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.64.nix
new file mode 100644
index 000000000000..1fd18bcb12af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/2.64.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, m4, perl }:
+
+stdenv.mkDerivation rec {
+ name = "autoconf-2.64";
+
+ src = fetchurl {
+ url = "mirror://gnu/autoconf/${name}.tar.xz";
+ sha256 = "0j3jdjpf5ly39dlp0bg70h72nzqr059k0x8iqxvaxf106chpgn9j";
+ };
+
+ buildInputs = [ m4 perl ];
+
+ # Work around a known issue in Cygwin. See
+ # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
+ # details.
+ # There are many test failures on `i386-pc-solaris2.11'.
+ #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
+ doCheck = false;
+
+ # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ enableParallelBuilding = true;
+
+ # Make the Autotest test suite run in parallel.
+ preCheck =''
+ export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
+ '';
+
+ doInstallCheck = false; # fails
+
+ meta = {
+ homepage = "https://www.gnu.org/software/autoconf/";
+ description = "Part of the GNU Build System";
+
+ longDescription = ''
+ GNU Autoconf is an extensible package of M4 macros that produce
+ shell scripts to automatically configure software source code
+ packages. These scripts can adapt the packages to many kinds of
+ UNIX-like systems without manual user intervention. Autoconf
+ creates a configuration script for a package from a template
+ file that lists the operating system features that the package
+ can use, in the form of M4 macro calls.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix
new file mode 100644
index 000000000000..93add837290b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autoconf/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, m4, perl }:
+
+# 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 {
+ name = "autoconf-2.69";
+
+ src = fetchurl {
+ url = "mirror://gnu/autoconf/${name}.tar.xz";
+ sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4";
+ };
+
+ nativeBuildInputs = [ m4 perl ];
+ buildInputs = [ m4 ];
+
+ # Work around a known issue in Cygwin. See
+ # http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
+ # details.
+ # There are many test failures on `i386-pc-solaris2.11'.
+ #doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));
+ doCheck = false;
+
+ # Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ enableParallelBuilding = true;
+
+ # Make the Autotest test suite run in parallel.
+ preCheck =''
+ export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
+ '';
+
+ doInstallCheck = false; # fails
+
+ meta = {
+ homepage = "https://www.gnu.org/software/autoconf/";
+ description = "Part of the GNU Build System";
+
+ longDescription = ''
+ GNU Autoconf is an extensible package of M4 macros that produce
+ shell scripts to automatically configure software source code
+ packages. These scripts can adapt the packages to many kinds of
+ UNIX-like systems without manual user intervention. Autoconf
+ creates a configuration script for a package from a template
+ file that lists the operating system features that the package
+ can use, in the form of M4 macro calls.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autogen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
new file mode 100644
index 000000000000..3e634bedfd19
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/autogen/default.nix
@@ -0,0 +1,80 @@
+{ stdenv, buildPackages, fetchurl, autoreconfHook, which, pkgconfig, perl, guile, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "autogen";
+ version = "5.18.16";
+
+ src = fetchurl {
+ url = "mirror://gnu/autogen/rel${version}/autogen-${version}.tar.xz";
+ sha256 = "16mlbdys8q4ckxlvxyhwkdnh1ay9f6g0cyp1kylkpalgnik398gq";
+ };
+
+ patches = let
+ dp = { ver ? "1%255.18.16-4", pname, name ? (pname + ".diff"), sha256 }: fetchurl {
+ url = "https://salsa.debian.org/debian/autogen/-/raw/debian/${ver}"
+ + "/debian/patches/${pname}.diff?inline=false";
+ inherit name sha256;
+ };
+ in [
+ (dp {
+ pname = "20_no_Werror";
+ sha256 = "08z4s2ifiqyaacjpd9pzr59w8m4j3548kkaq1bwvp2gjn29m680x";
+ })
+ (dp {
+ pname = "30_ag_macros.m4_syntax_error";
+ sha256 = "1z8vmbwbkz3505wd33i2xx91mlf8rwsa7klndq37nw821skxwyh3";
+ })
+ (dp {
+ pname = "31_allow_overriding_AGexe_for_crossbuild";
+ sha256 = "0h9wkc9bqb509knh8mymi43hg6n6sxg2lixvjlchcx7z0j7p8xkf";
+ })
+ ];
+
+ outputs = [ "bin" "dev" "lib" "out" "man" "info" ];
+
+ nativeBuildInputs = [
+ which pkgconfig perl autoreconfHook/*patches applied*/
+ ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ # autogen needs a build autogen when cross-compiling
+ buildPackages.buildPackages.autogen buildPackages.texinfo
+ ];
+ buildInputs = [
+ guile libxml2
+ ];
+
+ configureFlags = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "--with-libxml2=${libxml2.dev}"
+ "--with-libxml2-cflags=-I${libxml2.dev}/include/libxml2"
+ # the configure check for regcomp wants to run a host program
+ "libopts_cv_with_libregex=yes"
+ #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
+ ];
+
+ #doCheck = true; # not reliable
+
+ postInstall = ''
+ mkdir -p $dev/bin
+ mv $bin/bin/autoopts-config $dev/bin
+
+ for f in $lib/lib/autogen/tpl-config.tlib $out/share/autogen/tpl-config.tlib; do
+ sed -e "s|$dev/include|/no-such-autogen-include-path|" -i $f
+ sed -e "s|$bin/bin|/no-such-autogen-bin-path|" -i $f
+ sed -e "s|$lib/lib|/no-such-autogen-lib-path|" -i $f
+ done
+
+ '' + stdenv.lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+ # remove /build/** from RPATHs
+ for f in "$bin"/bin/*; do
+ local nrp="$(patchelf --print-rpath "$f" | sed -E 's@(:|^)/build/[^:]*:@\1@g')"
+ patchelf --set-rpath "$nrp" "$f"
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automated text and program generation tool";
+ license = with licenses; [ gpl3Plus lgpl3Plus ];
+ homepage = "https://www.gnu.org/software/autogen/";
+ platforms = platforms.all;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.11.x.nix
new file mode 100644
index 000000000000..b79f30478890
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, perl, autoconf }:
+
+stdenv.mkDerivation rec {
+ name = "automake-1.11.6";
+
+ # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
+ # available upstream; see
+ # <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=9026>.
+ builder = ./builder.sh;
+
+ setupHook = ./setup-hook.sh;
+
+ src = fetchurl {
+ url = "mirror://gnu/automake/${name}.tar.xz";
+ sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5";
+ };
+
+ patches = [ ./fix-test-autoconf-2.69.patch ./fix-perl-5.26.patch ];
+
+ buildInputs = [ perl autoconf ];
+
+ # Disable indented log output from Make, otherwise "make.test" will
+ # fail.
+ preCheck = "unset NIX_INDENT_MAKE";
+ doCheck = false; # takes _a lot_ of time, fails 11 of 782 tests
+
+ # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ # Run the test suite in parallel.
+ enableParallelBuilding = true;
+
+ meta = {
+ branch = "1.11";
+ homepage = "https://www.gnu.org/software/automake/";
+ description = "GNU standard-compliant makefile generator";
+
+ longDescription = ''
+ GNU Automake is a tool for automatically generating
+ `Makefile.in' files compliant with the GNU Coding
+ Standards. Automake requires the use of Autoconf.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.15.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.15.x.nix
new file mode 100644
index 000000000000..bf0967e9ddb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.15.x.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, perl, autoconf }:
+
+stdenv.mkDerivation rec {
+ name = "automake-1.15.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/automake/${name}.tar.xz";
+ sha256 = "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg";
+ };
+
+ nativeBuildInputs = [ autoconf perl ];
+ buildInputs = [ autoconf ];
+
+ setupHook = ./setup-hook.sh;
+
+ patches = [ ./help2man-SOURCE_DATE_EPOCH-support.patch ];
+
+ # Disable indented log output from Make, otherwise "make.test" will
+ # fail.
+ preCheck = "unset NIX_INDENT_MAKE";
+ doCheck = false; # takes _a lot_ of time, fails 3 out of 2698 tests, all seem to be related to paths
+ doInstallCheck = false; # runs the same thing, fails the same tests
+
+ # The test suite can run in parallel.
+ enableParallelBuilding = true;
+
+ # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ meta = {
+ branch = "1.15";
+ homepage = "https://www.gnu.org/software/automake/";
+ description = "GNU standard-compliant makefile generator";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ longDescription = ''
+ GNU Automake is a tool for automatically generating
+ `Makefile.in' files compliant with the GNU Coding
+ Standards. Automake requires the use of Autoconf.
+ '';
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.16.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.16.x.nix
new file mode 100644
index 000000000000..d6353fc0b9cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/automake-1.16.x.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, perl, autoconf }:
+
+stdenv.mkDerivation rec {
+ name = "automake-1.16.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/automake/${name}.tar.xz";
+ sha256 = "1l7dkqbsmbf94ax29jj1jf6a0r6ikc8jybg1p5m0c3ki7pg5ki6c";
+ };
+
+ nativeBuildInputs = [ autoconf perl ];
+ buildInputs = [ autoconf ];
+
+ setupHook = ./setup-hook.sh;
+
+ # Disable indented log output from Make, otherwise "make.test" will
+ # fail.
+ preCheck = "unset NIX_INDENT_MAKE";
+ doCheck = false; # takes _a lot_ of time, fails 3 out of 2698 tests, all seem to be related to paths
+ doInstallCheck = false; # runs the same thing, fails the same tests
+
+ # The test suite can run in parallel.
+ enableParallelBuilding = true;
+
+ # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ meta = {
+ branch = "1.16";
+ homepage = "https://www.gnu.org/software/automake/";
+ description = "GNU standard-compliant makefile generator";
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ longDescription = ''
+ GNU Automake is a tool for automatically generating
+ `Makefile.in' files compliant with the GNU Coding
+ Standards. Automake requires the use of Autoconf.
+ '';
+
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/builder.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/builder.sh
new file mode 100644
index 000000000000..e54a2acca67e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/builder.sh
@@ -0,0 +1,47 @@
+source $stdenv/setup
+
+# Wrap the given `aclocal' program, appending extra `-I' flags
+# corresponding to the directories listed in $ACLOCAL_PATH. (Note
+# that `wrapProgram' can't be used for that purpose since it can only
+# prepend flags, not append them.)
+wrapAclocal() {
+ local program="$1"
+ local wrapped="$(dirname $program)/.$(basename $program)-wrapped"
+
+ mv "$program" "$wrapped"
+ cat > "$program"<<EOF
+#! $SHELL -e
+
+unset extraFlagsArray
+declare -a extraFlagsArray
+
+oldIFS=\$IFS
+IFS=:
+for dir in \$ACLOCAL_PATH; do
+ if test -n "\$dir" -a -d "\$dir"; then
+ extraFlagsArray=("\${extraFlagsArray[@]}" "-I" "\$dir")
+ fi
+done
+IFS=\$oldIFS
+
+exec "$wrapped" "\$@" "\${extraFlagsArray[@]}"
+EOF
+ chmod +x "$program"
+}
+
+postInstall() {
+ # Create a wrapper around `aclocal' that converts every element in
+ # `ACLOCAL_PATH' into a `-I dir' option. This way `aclocal'
+ # becomes modular; M4 macros do not need to be stored in a single
+ # global directory, while callers of `aclocal' do not need to pass
+ # `-I' options explicitly.
+
+ for prog in $out/bin/aclocal*; do
+ wrapAclocal "$prog"
+ done
+
+ ln -s aclocal-1.11 $out/share/aclocal
+ ln -s automake-1.11 $out/share/automake
+}
+
+genericBuild
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-perl-5.26.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-perl-5.26.patch
new file mode 100644
index 000000000000..fb2d08de6d81
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-perl-5.26.patch
@@ -0,0 +1,10 @@
+--- automake-1.11.2/automake.in
++++ automake-1.11.2/automake.in
+@@ -4156,7 +4156,7 @@ sub substitute_ac_subst_variables_worker($)
+ sub substitute_ac_subst_variables ($)
+ {
+ my ($text) = @_;
+- $text =~ s/\${([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
++ $text =~ s/\$\{([^ \t=:+{}]+)}/&substitute_ac_subst_variables_worker ($1)/ge;
+ return $text;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-test-autoconf-2.69.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-test-autoconf-2.69.patch
new file mode 100644
index 000000000000..2ffa91f24eda
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/fix-test-autoconf-2.69.patch
@@ -0,0 +1,13 @@
+With Autoconf 2.69 (instead of 2.68), config.{guess,sub} are needed.
+
+--- automake-1.11.2/tests/compile_f90_c_cxx.test 2011-12-20 21:56:29.000000000 +0100
++++ automake-1.11.2/tests/compile_f90_c_cxx.test 2012-07-07 13:35:58.000000000 +0200
+@@ -41,7 +41,7 @@ END
+ : > baz.cc
+
+ $ACLOCAL
+-$AUTOMAKE
++$AUTOMAKE --add-missing
+
+ # Look for the macros at the beginning of rules. Be careful, as there
+ # are literal tabs at the beginning of the search strings.
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/help2man-SOURCE_DATE_EPOCH-support.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/help2man-SOURCE_DATE_EPOCH-support.patch
new file mode 100644
index 000000000000..048f75e63343
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/help2man-SOURCE_DATE_EPOCH-support.patch
@@ -0,0 +1,41 @@
+From 2e3357d7f0d63f1caeb40d9644c2436a5cd0da5f Mon Sep 17 00:00:00 2001
+From: David Terry <me@xwvvvvwx.com>
+Date: Fri, 18 Oct 2019 10:23:11 +0200
+Subject: [PATCH] help2man: add support for SOURCE_DATE_EPOCH
+
+---
+ doc/help2man | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/doc/help2man b/doc/help2man
+index af4306f..4a64167 100755
+--- a/doc/help2man
++++ b/doc/help2man
+@@ -213,11 +213,23 @@ sub get_option_value;
+ my $help_text = get_option_value $ARGV[0], $help_option;
+ $version_text ||= get_option_value $ARGV[0], $version_option;
+
++# By default the generated manual pages will include the current date. This may
++# however be overriden by setting the environment variable $SOURCE_DATE_EPOCH
++# to an integer value of the seconds since the UNIX epoch. This is primarily
++# intended to support reproducible builds (wiki.debian.org/ReproducibleBuilds)
++# and will additionally ensure that the output date string is UTC.
++my $epoch_secs = time;
++if (exists $ENV{SOURCE_DATE_EPOCH} and $ENV{SOURCE_DATE_EPOCH} =~ /^(\d+)$/)
++{
++ $epoch_secs = $1;
++ $ENV{TZ} = 'UTC';
++}
++
+ # Translators: the following message is a strftime(3) format string, which in
+ # the English version expands to the month as a word and the full year. It
+ # is used on the footer of the generated manual pages. If in doubt, you may
+ # just use %x as the value (which should be the full locale-specific date).
+-my $date = enc strftime _("%B %Y"), localtime;
++my $date = enc strftime _("%B %Y"), localtime $epoch_secs;
+ (my $program = $ARGV[0]) =~ s!.*/!!;
+ my $package = $program;
+ my $version;
+--
+2.23.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/setup-hook.sh
new file mode 100644
index 000000000000..292632b7cbce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automake/setup-hook.sh
@@ -0,0 +1,5 @@
+addAclocals () {
+ addToSearchPathWithCustomDelimiter : ACLOCAL_PATH $1/share/aclocal
+}
+
+addEnvHooks "$hostOffset" addAclocals
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automoc4/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automoc4/default.nix
new file mode 100644
index 000000000000..1cabb1f0223e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/automoc4/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, cmake, qt4 }:
+
+stdenv.mkDerivation rec {
+ name = "automoc4-0.9.88";
+
+ src = fetchurl {
+ url = "mirror://kde/stable/automoc4/0.9.88/${name}.tar.bz2";
+ sha256 = "0jackvg0bdjg797qlbbyf9syylm0qjs55mllhn11vqjsq3s1ch93";
+ };
+
+ buildInputs = [ cmake qt4 ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://techbase.kde.org/Development/Tools/Automoc4";
+ description = "KDE Meta Object Compiler";
+ license = licenses.bsd2;
+ maintainers = [ maintainers.sander ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix
new file mode 100644
index 000000000000..bb0520cf28ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/avrdude/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, yacc, flex, libusb-compat-0_1, libelf, libftdi1, readline
+# docSupport is a big dependency, disabled by default
+, docSupport ? false, texLive ? null, texinfo ? null, texi2html ? null
+}:
+
+assert docSupport -> texLive != null && texinfo != null && texi2html != null;
+
+stdenv.mkDerivation rec {
+ name = "avrdude-6.3";
+
+ src = fetchurl {
+ url = "mirror://savannah/avrdude/${name}.tar.gz";
+ sha256 = "15m1w1qad3dj7r8n5ng1qqcaiyx1gyd6hnc3p2apgjllccdp77qg";
+ };
+
+ configureFlags = stdenv.lib.optionals docSupport "--enable-doc";
+
+ buildInputs = [ yacc flex libusb-compat-0_1 libelf libftdi1 readline ]
+ ++ stdenv.lib.optionals docSupport [ texLive texinfo texi2html ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line tool for programming Atmel AVR microcontrollers";
+ longDescription = ''
+ AVRDUDE (AVR Downloader/UploaDEr) is an utility to
+ download/upload/manipulate the ROM and EEPROM contents of AVR
+ microcontrollers using the in-system programming technique (ISP).
+ '';
+ homepage = "https://www.nongnu.org/avrdude/";
+ license = licenses.gpl2Plus;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/awf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/awf/default.nix
new file mode 100644
index 000000000000..b1e627e7aa8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/awf/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, gtk2, gtk3, pkgconfig
+, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+ pname = "awf";
+ version = "1.4.0";
+
+ src = fetchFromGitHub {
+ owner = "valr";
+ repo = "awf";
+ rev = "v${version}";
+ sha256 = "0jl2kxwpvf2n8974zzyp69mqhsbjnjcqm39y0jvijvjb1iy8iman";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+
+ buildInputs = [ gtk2 gtk3 ];
+
+ autoreconfPhase = ''
+ patchShebangs ./autogen.sh
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A Widget Factory";
+ longDescription = ''
+ A widget factory is a theme preview application for gtk2 and
+ gtk3. It displays the various widget types provided by gtk2/gtk3
+ in a single window allowing to see the visual effect of the
+ applied theme.
+ '';
+ homepage = "https://github.com/valr/awf";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ michalrus ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/babeltrace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/babeltrace/default.nix
new file mode 100644
index 000000000000..03539eb2cc84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/babeltrace/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, pkgconfig, glib, libuuid, popt, elfutils }:
+
+stdenv.mkDerivation rec {
+ name = "babeltrace-1.5.8";
+
+ src = fetchurl {
+ url = "https://www.efficios.com/files/babeltrace/${name}.tar.bz2";
+ sha256 = "1hkg3phnamxfrhwzmiiirbhdgckzfkqwhajl0lmr1wfps7j47wcz";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libuuid popt elfutils ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line tool and library to read and convert LTTng tracefiles";
+ homepage = "https://www.efficios.com/babeltrace";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix
new file mode 100644
index 000000000000..0897960f6aa9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bashdb/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, makeWrapper, python3Packages }:
+
+stdenv.mkDerivation rec {
+ pname = "bashdb";
+ version = "4.4-1.0.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/bashdb/${pname}-${version}.tar.bz2";
+ sha256 = "0p7i7bpzs6q1i7swnkr89kxqgzr146xw8d2acmqwqbslzm9dqlml";
+ };
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ postInstall = ''
+ wrapProgram $out/bin/bashdb --prefix PYTHONPATH ":" "$(toPythonPath ${python3Packages.pygments})"
+ '';
+
+ meta = {
+ description = "Bash script debugger";
+ homepage = "http://bashdb.sourceforge.net/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bin_replace_string/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bin_replace_string/default.nix
new file mode 100644
index 000000000000..8fc809f0f0cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bin_replace_string/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, libelf, txt2man }:
+
+stdenv.mkDerivation {
+ pname = "bin_replace_string";
+ version = "0.2";
+
+ src = fetchurl {
+ sha256 = "1gnpddxwpsfrg4l76x5yplsvbcdbviybciqpn22yq3g3qgnr5c2a";
+ url = "ftp://ohnopub.net/mirror/bin_replace_string-0.2.tar.bz2";
+ };
+
+ buildInputs = [ libelf ];
+ nativeBuildInputs = [ txt2man ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Edit precompiled binaries";
+ longDescription = ''
+ bin_replace_string edits C-style strings in precompiled binaries. This is
+ intended to be useful to replace arbitrary strings in binaries whose
+ source code is not available. However, because of the nature of compiled
+ binaries, bin_replace_string may only replace a given C-string with a
+ shorter C-string.
+ '';
+ homepage = "http://ohnopub.net/~ohnobinki/bin_replace_string/";
+ downloadPage = "ftp://ohnopub.net/mirror/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
new file mode 100644
index 000000000000..5a047b0f0703
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
@@ -0,0 +1,517 @@
+From 6737a6b34f4823deb7142f27b4074831a37ac1e1 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Fri, 20 Jul 2018 09:18:47 -0700
+Subject: [PATCH] x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed
+
+When -z separate-code, which is enabled by default for Linux/x86, is
+used to create executable, ld won't place any data in the code-only
+PT_LOAD segment. If there are no data sections placed before the
+code-only PT_LOAD segment, the program headers won't be mapped into
+any PT_LOAD segment. When the executable tries to access it (based
+on the program header address passed in AT_PHDR), it will lead to
+segfault. This patch inserts a GNU_PROPERTY_X86_ISA_1_USED note if
+there may be no data sections before the text section so that the
+first PT_LOAD segment won't be code-only and will contain the program
+header.
+
+Testcases are adjusted to either pass "-z noseparate-code" to ld or
+discard the .note.gnu.property section. A Linux/x86 run-time test is
+added.
+
+bfd/
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
+ separate code program header is needed, make sure that the first
+ read-only PT_LOAD segment has no code by adding a
+ GNU_PROPERTY_X86_ISA_1_USED note.
+
+ld/
+
+ PR ld/23428
+ * testsuite/ld-elf/linux-x86.S: New file.
+ * testsuite/ld-elf/linux-x86.exp: Likewise.
+ * testsuite/ld-elf/pr23428.c: Likewise.
+ * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
+ for Linux/x86 targets.
+ * testsuite/ld-i386/abs-iamcu.d: Likewise.
+ * testsuite/ld-i386/abs.d: Likewise.
+ * testsuite/ld-i386/pr12718.d: Likewise.
+ * testsuite/ld-i386/pr12921.d: Likewise.
+ * testsuite/ld-x86-64/abs-k1om.d: Likewise.
+ * testsuite/ld-x86-64/abs-l1om.d: Likewise.
+ * testsuite/ld-x86-64/abs.d: Likewise.
+ * testsuite/ld-x86-64/pr12718.d: Likewise.
+ * testsuite/ld-x86-64/pr12921.d: Likewise.
+ * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
+ section.
+ * testsuite/ld-scripts/print-memory-usage.t: Likewise.
+ * testsuite/ld-scripts/size-2.t: Likewise.
+ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld
+ to create executable if language is "asm".
+
+(cherry picked from commit 241e64e3b42cd9eba514b8e0ad2ef39a337f10a5)
+---
+ bfd/elfxx-x86.c | 60 ++++++++++++++-----
+ ld/testsuite/ld-elf/linux-x86.S | 63 ++++++++++++++++++++
+ ld/testsuite/ld-elf/linux-x86.exp | 46 ++++++++++++++
+ ld/testsuite/ld-elf/pr23428.c | 43 +++++++++++++
+ ld/testsuite/ld-elf/sec64k.exp | 2 +
+ ld/testsuite/ld-i386/abs-iamcu.d | 2 +-
+ ld/testsuite/ld-i386/abs.d | 2 +-
+ ld/testsuite/ld-i386/pr12718.d | 2 +-
+ ld/testsuite/ld-i386/pr12921.d | 2 +-
+ ld/testsuite/ld-linkonce/zeroeh.ld | 1 +
+ ld/testsuite/ld-scripts/print-memory-usage.t | 2 +
+ ld/testsuite/ld-scripts/size-2.t | 1 +
+ ld/testsuite/ld-x86-64/abs-k1om.d | 2 +-
+ ld/testsuite/ld-x86-64/abs-l1om.d | 2 +-
+ ld/testsuite/ld-x86-64/abs.d | 2 +-
+ ld/testsuite/ld-x86-64/pr12718.d | 2 +-
+ ld/testsuite/ld-x86-64/pr12921.d | 2 +-
+ ld/testsuite/lib/ld-lib.exp | 5 +-
+ 20 files changed, 248 insertions(+), 25 deletions(-)
+ create mode 100644 ld/testsuite/ld-elf/linux-x86.S
+ create mode 100644 ld/testsuite/ld-elf/linux-x86.exp
+ create mode 100644 ld/testsuite/ld-elf/pr23428.c
+
+diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
+index a2497aab86..2e4ff88f1f 100644
+--- a/bfd/elfxx-x86.c
++++ b/bfd/elfxx-x86.c
+@@ -2524,6 +2524,7 @@ _bfd_x86_elf_link_setup_gnu_properties
+ const struct elf_backend_data *bed;
+ unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
+ unsigned int got_align;
++ bfd_boolean has_text = FALSE;
+
+ features = 0;
+ if (info->ibt)
+@@ -2538,24 +2539,59 @@ _bfd_x86_elf_link_setup_gnu_properties
+ if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
+ && bfd_count_sections (pbfd) != 0)
+ {
++ if (!has_text)
++ {
++ /* Check if there is no non-empty text section. */
++ sec = bfd_get_section_by_name (pbfd, ".text");
++ if (sec != NULL && sec->size != 0)
++ has_text = TRUE;
++ }
++
+ ebfd = pbfd;
+
+ if (elf_properties (pbfd) != NULL)
+ break;
+ }
+
+- if (ebfd != NULL && features)
++ bed = get_elf_backend_data (info->output_bfd);
++
++ htab = elf_x86_hash_table (info, bed->target_id);
++ if (htab == NULL)
++ return pbfd;
++
++ if (ebfd != NULL)
+ {
+- /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
+- GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
+- prop = _bfd_elf_get_property (ebfd,
+- GNU_PROPERTY_X86_FEATURE_1_AND,
+- 4);
+- prop->u.number |= features;
+- prop->pr_kind = property_number;
++ prop = NULL;
++ if (features)
++ {
++ /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
++ GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
++ prop = _bfd_elf_get_property (ebfd,
++ GNU_PROPERTY_X86_FEATURE_1_AND,
++ 4);
++ prop->u.number |= features;
++ prop->pr_kind = property_number;
++ }
++ else if (has_text
++ && elf_properties (ebfd) == NULL
++ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
++ && !htab->elf.dynamic_sections_created
++ && !info->traditional_format
++ && (info->output_bfd->flags & D_PAGED) != 0
++ && info->separate_code)
++ {
++ /* If the separate code program header is needed, make sure
++ that the first read-only PT_LOAD segment has no code by
++ adding a GNU_PROPERTY_X86_ISA_1_USED note. */
++ prop = _bfd_elf_get_property (ebfd,
++ GNU_PROPERTY_X86_ISA_1_USED,
++ 4);
++ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
++ prop->pr_kind = property_number;
++ }
+
+ /* Create the GNU property note section if needed. */
+- if (pbfd == NULL)
++ if (prop != NULL && pbfd == NULL)
+ {
+ sec = bfd_make_section_with_flags (ebfd,
+ NOTE_GNU_PROPERTY_SECTION_NAME,
+@@ -2581,12 +2617,6 @@ error_alignment:
+
+ pbfd = _bfd_elf_link_setup_gnu_properties (info);
+
+- bed = get_elf_backend_data (info->output_bfd);
+-
+- htab = elf_x86_hash_table (info, bed->target_id);
+- if (htab == NULL)
+- return pbfd;
+-
+ htab->r_info = init_table->r_info;
+ htab->r_sym = init_table->r_sym;
+
+diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
+new file mode 100644
+index 0000000000..bdf40c6e01
+--- /dev/null
++++ b/ld/testsuite/ld-elf/linux-x86.S
+@@ -0,0 +1,63 @@
++ .text
++ .globl _start
++ .type _start,@function
++ .p2align 4
++_start:
++ xorl %ebp, %ebp
++#ifdef __LP64__
++ popq %rdi
++ movq %rsp, %rsi
++ andq $~15, %rsp
++#elif defined __x86_64__
++ mov (%rsp),%edi
++ addl $4,%esp
++ movl %esp, %esi
++ andl $~15, %esp
++#else
++ popl %esi
++ movl %esp, %ecx
++ andl $~15, %esp
++
++ subl $8,%esp
++ pushl %ecx
++ pushl %esi
++#endif
++
++ call main
++
++ hlt
++
++ .type syscall, @function
++ .globl syscall
++ .p2align 4
++syscall:
++#ifdef __x86_64__
++ movq %rdi, %rax /* Syscall number -> rax. */
++ movq %rsi, %rdi /* shift arg1 - arg5. */
++ movq %rdx, %rsi
++ movq %rcx, %rdx
++ movq %r8, %r10
++ movq %r9, %r8
++ movq 8(%rsp),%r9 /* arg6 is on the stack. */
++ syscall /* Do the system call. */
++#else
++ push %ebp
++ push %edi
++ push %esi
++ push %ebx
++ mov 0x2c(%esp),%ebp
++ mov 0x28(%esp),%edi
++ mov 0x24(%esp),%esi
++ mov 0x20(%esp),%edx
++ mov 0x1c(%esp),%ecx
++ mov 0x18(%esp),%ebx
++ mov 0x14(%esp),%eax
++ int $0x80
++ pop %ebx
++ pop %esi
++ pop %edi
++ pop %ebp
++#endif
++ ret /* Return to caller. */
++ .size syscall, .-syscall
++ .section .note.GNU-stack,"",@progbits
+diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
+new file mode 100644
+index 0000000000..36217c6fb4
+--- /dev/null
++++ b/ld/testsuite/ld-elf/linux-x86.exp
+@@ -0,0 +1,46 @@
++# Expect script for simple native Linux/x86 tests.
++# Copyright (C) 2018 Free Software Foundation, Inc.
++#
++# This file is part of the GNU Binutils.
++#
++# 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, write to the Free Software
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
++# MA 02110-1301, USA.
++#
++
++# Test very simple native Linux/x86 programs with linux-x86.S.
++if { ![isnative] || [which $CC] == 0 \
++ || (![istarget "i?86-*-linux*"] \
++ && ![istarget "x86_64-*-linux*"] \
++ && ![istarget "amd64-*-linux*"]) } {
++ return
++}
++
++# Add $PLT_CFLAGS if PLT is expected.
++global PLT_CFLAGS
++# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
++global NOPIE_CFLAGS NOPIE_LDFLAGS
++
++run_ld_link_exec_tests [list \
++ [list \
++ "Run PR ld/23428 test" \
++ "--no-dynamic-linker -z separate-code" \
++ "" \
++ { linux-x86.S pr23428.c } \
++ "pr23428" \
++ "pass.out" \
++ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
++ "asm" \
++ ] \
++]
+diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
+new file mode 100644
+index 0000000000..3631ed7926
+--- /dev/null
++++ b/ld/testsuite/ld-elf/pr23428.c
+@@ -0,0 +1,43 @@
++#include <unistd.h>
++#include <link.h>
++#include <syscall.h>
++
++#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
++
++int
++main (int argc, char **argv)
++{
++ char **ev = &argv[argc + 1];
++ char **evp = ev;
++ ElfW(auxv_t) *av;
++ const ElfW(Phdr) *phdr = NULL;
++ size_t phnum = 0;
++ size_t loadnum = 0;
++ int fd = STDOUT_FILENO;
++ size_t i;
++
++ while (*evp++ != NULL)
++ ;
++
++ av = (ElfW(auxv_t) *) evp;
++
++ for (; av->a_type != AT_NULL; ++av)
++ switch (av->a_type)
++ {
++ case AT_PHDR:
++ phdr = (const void *) av->a_un.a_val;
++ break;
++ case AT_PHNUM:
++ phnum = av->a_un.a_val;
++ break;
++ }
++
++ for (i = 0; i < phnum; i++, phdr++)
++ if (phdr->p_type == PT_LOAD)
++ loadnum++;
++
++ syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
++
++ syscall (SYS_exit, !loadnum);
++ return 0;
++}
+diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
+index b58139e9dd..3909c0eaa1 100644
+--- a/ld/testsuite/ld-elf/sec64k.exp
++++ b/ld/testsuite/ld-elf/sec64k.exp
+@@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
+ foreach sfile $sfiles { puts $ofd "#source: $sfile" }
+ if { [istarget spu*-*-*] } {
+ puts $ofd "#ld: --local-store 0:0"
++ } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
++ puts $ofd "#ld: -z noseparate-code"
+ } else {
+ puts $ofd "#ld:"
+ }
+diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
+index ac9beff2e5..aba7d6b03f 100644
+--- a/ld/testsuite/ld-i386/abs-iamcu.d
++++ b/ld/testsuite/ld-i386/abs-iamcu.d
+@@ -2,7 +2,7 @@
+ #source: abs.s
+ #source: zero.s
+ #as: --32 -march=iamcu
+-#ld: -m elf_iamcu
++#ld: -m elf_iamcu -z noseparate-code
+ #objdump: -rs -j .text
+
+ .*: file format .*
+diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
+index e660aca524..191ee4456a 100644
+--- a/ld/testsuite/ld-i386/abs.d
++++ b/ld/testsuite/ld-i386/abs.d
+@@ -2,7 +2,7 @@
+ #as: --32
+ #source: abs.s
+ #source: zero.s
+-#ld: -melf_i386
++#ld: -melf_i386 -z noseparate-code
+ #objdump: -rs
+
+ .*: file format .*
+diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
+index ec51540a42..7eba52d95e 100644
+--- a/ld/testsuite/ld-i386/pr12718.d
++++ b/ld/testsuite/ld-i386/pr12718.d
+@@ -1,6 +1,6 @@
+ #name: PR ld/12718
+ #as: --32
+-#ld: -melf_i386
++#ld: -melf_i386 -z noseparate-code
+ #readelf: -S
+
+ There are 5 section headers, starting at offset 0x[0-9a-f]+:
+diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
+index e49079b3c8..ea2da3eb51 100644
+--- a/ld/testsuite/ld-i386/pr12921.d
++++ b/ld/testsuite/ld-i386/pr12921.d
+@@ -1,6 +1,6 @@
+ #name: PR ld/12921
+ #as: --32
+-#ld: -melf_i386
++#ld: -melf_i386 -z noseparate-code
+ #readelf: -S --wide
+
+ There are 7 section headers, starting at offset 0x[0-9a-f]+:
+diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
+index b22eaa12c9..f89855a08f 100644
+--- a/ld/testsuite/ld-linkonce/zeroeh.ld
++++ b/ld/testsuite/ld-linkonce/zeroeh.ld
+@@ -2,4 +2,5 @@ SECTIONS {
+ .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
+ .gcc_except_table 0x2000 : { *(.gcc_except_table) }
+ .eh_frame 0x4000 : { *(.eh_frame) }
++ /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
+index 5ff057a5e3..6eda1d2dc4 100644
+--- a/ld/testsuite/ld-scripts/print-memory-usage.t
++++ b/ld/testsuite/ld-scripts/print-memory-usage.t
+@@ -11,4 +11,6 @@ SECTIONS
+ *(.data)
+ *(.rw)
+ }
++
++ /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
+index 723863995e..c3c4eddab4 100644
+--- a/ld/testsuite/ld-scripts/size-2.t
++++ b/ld/testsuite/ld-scripts/size-2.t
+@@ -18,4 +18,5 @@ SECTIONS
+ LONG (SIZEOF (.tdata))
+ LONG (SIZEOF (.tbss))
+ } :image
++ /DISCARD/ : { *(.note.gnu.property) }
+ }
+diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
+index 2c26639fc0..6b0fde0eed 100644
+--- a/ld/testsuite/ld-x86-64/abs-k1om.d
++++ b/ld/testsuite/ld-x86-64/abs-k1om.d
+@@ -2,7 +2,7 @@
+ #source: ../ld-i386/abs.s
+ #source: ../ld-i386/zero.s
+ #as: --64 -march=k1om
+-#ld: -m elf_k1om
++#ld: -m elf_k1om -z noseparate-code
+ #objdump: -rs -j .text
+
+ .*: file format .*
+diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
+index 1fb96d44b7..f87869f9d0 100644
+--- a/ld/testsuite/ld-x86-64/abs-l1om.d
++++ b/ld/testsuite/ld-x86-64/abs-l1om.d
+@@ -2,7 +2,7 @@
+ #source: ../ld-i386/abs.s
+ #source: ../ld-i386/zero.s
+ #as: --64 -march=l1om
+-#ld: -m elf_l1om
++#ld: -m elf_l1om -z noseparate-code
+ #objdump: -rs -j .text
+ #target: x86_64-*-linux*
+
+diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
+index b24b018639..d99ab4685d 100644
+--- a/ld/testsuite/ld-x86-64/abs.d
++++ b/ld/testsuite/ld-x86-64/abs.d
+@@ -1,7 +1,7 @@
+ #name: Absolute non-overflowing relocs
+ #source: ../ld-i386/abs.s
+ #source: ../ld-i386/zero.s
+-#ld:
++#ld: -z noseparate-code
+ #objdump: -rs
+
+ .*: file format .*
+diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
+index 07d17325d0..2c503ffbaa 100644
+--- a/ld/testsuite/ld-x86-64/pr12718.d
++++ b/ld/testsuite/ld-x86-64/pr12718.d
+@@ -1,6 +1,6 @@
+ #name: PR ld/12718
+ #as: --64
+-#ld: -melf_x86_64
++#ld: -melf_x86_64 -z noseparate-code
+ #readelf: -S --wide
+
+ There are 5 section headers, starting at offset 0x[0-9a-f]+:
+diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
+index 6fe6abee09..1162d55818 100644
+--- a/ld/testsuite/ld-x86-64/pr12921.d
++++ b/ld/testsuite/ld-x86-64/pr12921.d
+@@ -1,6 +1,6 @@
+ #name: PR ld/12921
+ #as: --64
+-#ld: -melf_x86_64
++#ld: -melf_x86_64 -z noseparate-code
+ #readelf: -S --wide
+
+ There are 7 section headers, starting at offset 0x[0-9a-f]+:
+diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
+index cfbefe9028..1095091882 100644
+--- a/ld/testsuite/lib/ld-lib.exp
++++ b/ld/testsuite/lib/ld-lib.exp
+@@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
+ continue
+ }
+
+- if { [ string match "c++" $lang ] } {
++ if { [ string match "asm" $lang ] } {
++ set link_proc ld_link
++ set link_cmd $ld
++ } elseif { [ string match "c++" $lang ] } {
+ set link_proc ld_link
+ set link_cmd $CXX
+ } else {
+--
+2.20.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
new file mode 100644
index 000000000000..ca50d9a57cd1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
@@ -0,0 +1,137 @@
+From 28a27bdbb9500797e6767f80c8128b09112aeed5 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Sat, 11 Aug 2018 06:41:33 -0700
+Subject: [PATCH] x86: Properly add X86_ISA_1_NEEDED property
+
+Existing properties may be removed during property merging. We avoid
+adding X86_ISA_1_NEEDED property only if existing properties won't be
+removed.
+
+bfd/
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
+ add X86_ISA_1_NEEDED property only if existing properties won't
+ be removed.
+
+ld/
+
+ PR ld/23428
+ * testsuite/ld-elf/dummy.s: New file.
+ * testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
+ * testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
+
+(cherry picked from commit ab9e342807d132182892de1be1a92d6e91a5c1da)
+---
+ bfd/elfxx-x86.c | 28 ++++++++++++++++++++++------
+ ld/testsuite/ld-elf/dummy.s | 1 +
+ ld/testsuite/ld-elf/linux-x86.S | 28 ++++++++++++++++++++++++++++
+ ld/testsuite/ld-elf/linux-x86.exp | 2 +-
+ 6 files changed, 66 insertions(+), 7 deletions(-)
+ create mode 100644 ld/testsuite/ld-elf/dummy.s
+
+diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
+index 7ccfd25815..2d8f7b640b 100644
+--- a/bfd/elfxx-x86.c
++++ b/bfd/elfxx-x86.c
+@@ -2588,7 +2588,6 @@ _bfd_x86_elf_link_setup_gnu_properties
+ prop->pr_kind = property_number;
+ }
+ else if (has_text
+- && elf_properties (ebfd) == NULL
+ && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
+ && !htab->elf.dynamic_sections_created
+ && !info->traditional_format
+@@ -2598,11 +2597,28 @@ _bfd_x86_elf_link_setup_gnu_properties
+ /* If the separate code program header is needed, make sure
+ that the first read-only PT_LOAD segment has no code by
+ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
+- prop = _bfd_elf_get_property (ebfd,
+- GNU_PROPERTY_X86_ISA_1_NEEDED,
+- 4);
+- prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+- prop->pr_kind = property_number;
++ elf_property_list *list;
++ bfd_boolean need_property = TRUE;
++
++ for (list = elf_properties (ebfd); list; list = list->next)
++ switch (list->property.pr_type)
++ {
++ case GNU_PROPERTY_STACK_SIZE:
++ case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
++ case GNU_PROPERTY_X86_ISA_1_NEEDED:
++ /* These properties won't be removed during merging. */
++ need_property = FALSE;
++ break;
++ }
++
++ if (need_property)
++ {
++ prop = _bfd_elf_get_property (ebfd,
++ GNU_PROPERTY_X86_ISA_1_NEEDED,
++ 4);
++ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
++ prop->pr_kind = property_number;
++ }
+ }
+
+ /* Create the GNU property note section if needed. */
+diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
+new file mode 100644
+index 0000000000..403f98000d
+--- /dev/null
++++ b/ld/testsuite/ld-elf/dummy.s
+@@ -0,0 +1 @@
++# Dummy
+diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
+index bdf40c6e01..d94abc1106 100644
+--- a/ld/testsuite/ld-elf/linux-x86.S
++++ b/ld/testsuite/ld-elf/linux-x86.S
+@@ -61,3 +61,31 @@ syscall:
+ ret /* Return to caller. */
+ .size syscall, .-syscall
+ .section .note.GNU-stack,"",@progbits
++
++ .section ".note.gnu.property", "a"
++#ifdef __LP64__
++ .p2align 3
++#else
++ .p2align 2
++#endif
++ .long 1f - 0f /* name length */
++ .long 5f - 2f /* data length */
++ .long 5 /* note type */
++0: .asciz "GNU" /* vendor name */
++1:
++#ifdef __LP64__
++ .p2align 3
++#else
++ .p2align 2
++#endif
++2: .long 0xc0000002 /* pr_type. */
++ .long 4f - 3f /* pr_datasz. */
++3:
++ .long 0x2
++4:
++#ifdef __LP64__
++ .p2align 3
++#else
++ .p2align 2
++#endif
++5:
+diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
+index 36217c6fb4..f6f5a80853 100644
+--- a/ld/testsuite/ld-elf/linux-x86.exp
++++ b/ld/testsuite/ld-elf/linux-x86.exp
+@@ -37,7 +37,7 @@ run_ld_link_exec_tests [list \
+ "Run PR ld/23428 test" \
+ "--no-dynamic-linker -z separate-code" \
+ "" \
+- { linux-x86.S pr23428.c } \
++ { linux-x86.S pr23428.c dummy.s } \
+ "pr23428" \
+ "pass.out" \
+ "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
+--
+2.20.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
new file mode 100644
index 000000000000..866d6db8ce24
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
@@ -0,0 +1,583 @@
+From d55c3e36094f06bb1fb02f5eac19fdccf1d91f7e Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Wed, 8 Aug 2018 06:09:15 -0700
+Subject: [PATCH] x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without the GNU_PROPERTY_X86_ISA_1_USED property, all ISAs may be used.
+If a bit in the GNU_PROPERTY_X86_ISA_1_USED property is unset, the
+corresponding x86 instruction set isn’t used. When merging properties
+from 2 input files and one input file doesn't have the
+GNU_PROPERTY_X86_ISA_1_USED property, the output file shouldn't have
+it neither. This patch removes the GNU_PROPERTY_X86_ISA_1_USED
+property if an input file doesn't have it.
+
+This patch replaces the GNU_PROPERTY_X86_ISA_1_USED property with the
+GNU_PROPERTY_X86_ISA_1_NEEDED property which is the minimum ISA
+requirement.
+
+bfd/
+
+ PR ld/23486
+ * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
+ GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
+ (_bfd_x86_elf_link_setup_gnu_properties): Adding the
+ GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
+ GNU_PROPERTY_X86_ISA_1_USED, property.
+
+ld/
+
+ PR ld/23486
+ * testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
+ * testsuite/ld-x86-64/x86-64.exp: Likewise.
+ * testsuite/ld-i386/pr23486a.d: New file.
+ * testsuite/ld-i386/pr23486b.d: Likewise.
+ * testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr23486a.d: Likewise.
+ * testsuite/ld-x86-64/pr23486a.s: Likewise.
+ * testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
+ * testsuite/ld-x86-64/pr23486b.d: Likewise.
+ * testsuite/ld-x86-64/pr23486b.s: Likewise.
+ * testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
+ * testsuite/ld-i386/property-4.r: Likewise.
+ * testsuite/ld-i386/property-5.r: Likewise.
+ * testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
+ * testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
+ * testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
+ * testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
+ * testsuite/ld-x86-64/property-3.r: Likewise.
+ * testsuite/ld-x86-64/property-4.r: Likewise.
+ * testsuite/ld-x86-64/property-5.r: Likewise.
+ * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
+
+(cherry picked from commit f7309df20c4e787041cedc4a6aced89c15259e54)
+---
+ bfd/elfxx-x86.c | 25 ++++++++++++---
+ ld/testsuite/ld-i386/i386.exp | 2 ++
+ ld/testsuite/ld-i386/pr23486a.d | 10 ++++++
+ ld/testsuite/ld-i386/pr23486b.d | 10 ++++++
+ ld/testsuite/ld-i386/property-3.r | 1 -
+ ld/testsuite/ld-i386/property-4.r | 1 -
+ ld/testsuite/ld-i386/property-5.r | 1 -
+ ld/testsuite/ld-i386/property-x86-ibt3a.d | 5 ++-
+ ld/testsuite/ld-i386/property-x86-ibt3b.d | 5 ++-
+ ld/testsuite/ld-i386/property-x86-shstk3a.d | 5 ++-
+ ld/testsuite/ld-i386/property-x86-shstk3b.d | 5 ++-
+ ld/testsuite/ld-x86-64/pr23486a-x32.d | 10 ++++++
+ ld/testsuite/ld-x86-64/pr23486a.d | 10 ++++++
+ ld/testsuite/ld-x86-64/pr23486a.s | 30 +++++++++++++++++
+ ld/testsuite/ld-x86-64/pr23486b-x32.d | 10 ++++++
+ ld/testsuite/ld-x86-64/pr23486b.d | 10 ++++++
+ ld/testsuite/ld-x86-64/pr23486b.s | 30 +++++++++++++++++
+ ld/testsuite/ld-x86-64/property-3.r | 1 -
+ ld/testsuite/ld-x86-64/property-4.r | 1 -
+ ld/testsuite/ld-x86-64/property-5.r | 1 -
+ .../ld-x86-64/property-x86-ibt3a-x32.d | 5 ++-
+ ld/testsuite/ld-x86-64/property-x86-ibt3a.d | 5 ++-
+ .../ld-x86-64/property-x86-ibt3b-x32.d | 5 ++-
+ ld/testsuite/ld-x86-64/property-x86-ibt3b.d | 5 ++-
+ .../ld-x86-64/property-x86-shstk3a-x32.d | 5 ++-
+ ld/testsuite/ld-x86-64/property-x86-shstk3a.d | 5 ++-
+ .../ld-x86-64/property-x86-shstk3b-x32.d | 5 ++-
+ ld/testsuite/ld-x86-64/property-x86-shstk3b.d | 5 ++-
+ ld/testsuite/ld-x86-64/x86-64.exp | 4 +++
+ 31 files changed, 211 insertions(+), 47 deletions(-)
+ create mode 100644 ld/testsuite/ld-i386/pr23486a.d
+ create mode 100644 ld/testsuite/ld-i386/pr23486b.d
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486a-x32.d
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486a.d
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486a.s
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486b-x32.d
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486b.d
+ create mode 100644 ld/testsuite/ld-x86-64/pr23486b.s
+
+--- a/bfd/elfxx-x86.c
++++ b/bfd/elfxx-x86.c
+@@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
+ switch (pr_type)
+ {
+ case GNU_PROPERTY_X86_ISA_1_USED:
++ if (aprop == NULL || bprop == NULL)
++ {
++ /* Only one of APROP and BPROP can be NULL. */
++ if (aprop != NULL)
++ {
++ /* Remove this property since the other input file doesn't
++ have it. */
++ aprop->pr_kind = property_remove;
++ updated = TRUE;
++ }
++ break;
++ }
++ goto or_property;
++
+ case GNU_PROPERTY_X86_ISA_1_NEEDED:
+ if (aprop != NULL && bprop != NULL)
+ {
++or_property:
+ number = aprop->u.number;
+ aprop->u.number = number | bprop->u.number;
+- /* Remove the property if ISA bits are empty. */
++ /* Remove the property if all bits are empty. */
+ if (aprop->u.number == 0)
+ {
+ aprop->pr_kind = property_remove;
+@@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
+ {
+ if (aprop->u.number == 0)
+ {
+- /* Remove APROP if ISA bits are empty. */
++ /* Remove APROP if all bits are empty. */
+ aprop->pr_kind = property_remove;
+ updated = TRUE;
+ }
+ }
+ else
+ {
+- /* Return TRUE if APROP is NULL and ISA bits of BPROP
++ /* Return TRUE if APROP is NULL and all bits of BPROP
+ aren't empty to indicate that BPROP should be added
+ to ABFD. */
+ updated = bprop->u.number != 0;
+@@ -2582,9 +2597,9 @@ _bfd_x86_elf_link_setup_gnu_properties
+ {
+ /* If the separate code program header is needed, make sure
+ that the first read-only PT_LOAD segment has no code by
+- adding a GNU_PROPERTY_X86_ISA_1_USED note. */
++ adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
+ prop = _bfd_elf_get_property (ebfd,
+- GNU_PROPERTY_X86_ISA_1_USED,
++ GNU_PROPERTY_X86_ISA_1_NEEDED,
+ 4);
+ prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
+ prop->pr_kind = property_number;
+diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
+index 6d794fe653..78dad02579 100644
+--- a/ld/testsuite/ld-i386/i386.exp
++++ b/ld/testsuite/ld-i386/i386.exp
+@@ -462,6 +462,8 @@ run_dump_test "pr23189"
+ run_dump_test "pr23194"
+ run_dump_test "pr23372a"
+ run_dump_test "pr23372b"
++run_dump_test "pr23486a"
++run_dump_test "pr23486b"
+
+ if { !([istarget "i?86-*-linux*"]
+ || [istarget "i?86-*-gnu*"]
+diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
+new file mode 100644
+index 0000000000..41a6dcf7d5
+--- /dev/null
++++ b/ld/testsuite/ld-i386/pr23486a.d
+@@ -0,0 +1,10 @@
++#source: ../ld-x86-64/pr23486a.s
++#source: ../ld-x86-64/pr23486b.s
++#as: --32
++#ld: -r -m elf_i386
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
+new file mode 100644
+index 0000000000..08019b7274
+--- /dev/null
++++ b/ld/testsuite/ld-i386/pr23486b.d
+@@ -0,0 +1,10 @@
++#source: ../ld-x86-64/pr23486b.s
++#source: ../ld-x86-64/pr23486a.s
++#as: --32
++#ld: -r -m elf_i386
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
+index 0ed91f5922..d03203c1e5 100644
+--- a/ld/testsuite/ld-i386/property-3.r
++++ b/ld/testsuite/ld-i386/property-3.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x800000
+- x86 ISA used: 586, SSE
+ x86 ISA needed: i486, 586
+ #pass
+diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
+index cb2bc15d9a..da295eb6c7 100644
+--- a/ld/testsuite/ld-i386/property-4.r
++++ b/ld/testsuite/ld-i386/property-4.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x800000
+- x86 ISA used: i486, 586, SSE
+ x86 ISA needed: i486, 586, SSE
+ #pass
+diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
+index 552965058c..e4141594b3 100644
+--- a/ld/testsuite/ld-i386/property-5.r
++++ b/ld/testsuite/ld-i386/property-5.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x900000
+- x86 ISA used: i486, 586, SSE
+ x86 ISA needed: i486, 586, SSE
+ #pass
+diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
+index 4bb35b00fb..0aedea1614 100644
+--- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
++++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: i486, 586, SSE2, SSE3
+- x86 ISA needed: 586, SSE, SSE3, SSE4_1
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
+diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
+index 418d58a8f7..bd69ac6478 100644
+--- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
++++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: i486, 586, SSE2, SSE3
+- x86 ISA needed: 586, SSE, SSE3, SSE4_1
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
+diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
+index e261038f60..76d2a39f2c 100644
+--- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
++++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: i486, 586, SSE2, SSE3
+- x86 ISA needed: 586, SSE, SSE3, SSE4_1
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
+diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
+index 25f3d2361e..e770ecffa5 100644
+--- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
++++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: i486, 586, SSE2, SSE3
+- x86 ISA needed: 586, SSE, SSE3, SSE4_1
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
+diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
+new file mode 100644
+index 0000000000..6d9fa68cdb
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
+@@ -0,0 +1,10 @@
++#source: pr23486a.s
++#source: pr23486b.s
++#as: --x32
++#ld: -r -m elf32_x86_64
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
+new file mode 100644
+index 0000000000..dc2b7bf760
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486a.d
+@@ -0,0 +1,10 @@
++#source: pr23486a.s
++#source: pr23486b.s
++#as: --64 -defsym __64_bit__=1
++#ld: -r -m elf_x86_64
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
+new file mode 100644
+index 0000000000..a07d0c7ced
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486a.s
+@@ -0,0 +1,30 @@
++ .section ".note.gnu.property", "a"
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++ .long 1f - 0f /* name length. */
++ .long 4f - 1f /* data length. */
++ /* NT_GNU_PROPERTY_TYPE_0 */
++ .long 5 /* note type. */
++0:
++ .asciz "GNU" /* vendor name. */
++1:
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++ /* GNU_PROPERTY_X86_ISA_1_USED */
++ .long 0xc0000000 /* pr_type. */
++ .long 3f - 2f /* pr_datasz. */
++2:
++ .long 0xa
++3:
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++4:
+diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
+new file mode 100644
+index 0000000000..0445e69d82
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
+@@ -0,0 +1,10 @@
++#source: pr23486b.s
++#source: pr23486a.s
++#as: --x32
++#ld: -r -m elf32_x86_64
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
+new file mode 100644
+index 0000000000..dc2b7bf760
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486b.d
+@@ -0,0 +1,10 @@
++#source: pr23486a.s
++#source: pr23486b.s
++#as: --64 -defsym __64_bit__=1
++#ld: -r -m elf_x86_64
++#readelf: -n
++
++Displaying notes found in: .note.gnu.property
++ Owner Data size Description
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586
+diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
+new file mode 100644
+index 0000000000..c5167eeb65
+--- /dev/null
++++ b/ld/testsuite/ld-x86-64/pr23486b.s
+@@ -0,0 +1,30 @@
++ .section ".note.gnu.property", "a"
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++ .long 1f - 0f /* name length. */
++ .long 4f - 1f /* data length. */
++ /* NT_GNU_PROPERTY_TYPE_0 */
++ .long 5 /* note type. */
++0:
++ .asciz "GNU" /* vendor name. */
++1:
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++ /* GNU_PROPERTY_X86_ISA_1_NEEDED */
++ .long 0xc0000001 /* pr_type. */
++ .long 3f - 2f /* pr_datasz. */
++2:
++ .long 0x3
++3:
++.ifdef __64_bit__
++ .p2align 3
++.else
++ .p2align 2
++.endif
++4:
+diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
+index 0ed91f5922..d03203c1e5 100644
+--- a/ld/testsuite/ld-x86-64/property-3.r
++++ b/ld/testsuite/ld-x86-64/property-3.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x800000
+- x86 ISA used: 586, SSE
+ x86 ISA needed: i486, 586
+ #pass
+diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
+index cb2bc15d9a..da295eb6c7 100644
+--- a/ld/testsuite/ld-x86-64/property-4.r
++++ b/ld/testsuite/ld-x86-64/property-4.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x800000
+- x86 ISA used: i486, 586, SSE
+ x86 ISA needed: i486, 586, SSE
+ #pass
+diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
+index 552965058c..e4141594b3 100644
+--- a/ld/testsuite/ld-x86-64/property-5.r
++++ b/ld/testsuite/ld-x86-64/property-5.r
+@@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: stack size: 0x900000
+- x86 ISA used: i486, 586, SSE
+ x86 ISA needed: i486, 586, SSE
+ #pass
+diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+index 011426f5a4..4cec728dc7 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+index 1b4229a037..a8df49a351 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+index 290ed6abf1..c112626711 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+index 1142e03272..f10dffdc2c 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
++++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+index 819542d181..0147a3c7b6 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+index 4c5d0e0a18..1f8c2dc929 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+index ba181e0bc5..7ca2539ca5 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+index 5216f385dd..f66a40e449 100644
+--- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
++++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
+@@ -6,6 +6,5 @@
+
+ Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+- GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
+- Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
+- x86 ISA needed: i486, 586, SSE2, SSE3
++ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
++ Properties: x86 ISA needed: i486, 586, SSE2, SSE3
+diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
+index 6edb9e86f4..ae21e554ad 100644
+--- a/ld/testsuite/ld-x86-64/x86-64.exp
++++ b/ld/testsuite/ld-x86-64/x86-64.exp
+@@ -403,6 +403,10 @@ run_dump_test "pr23372a"
+ run_dump_test "pr23372a-x32"
+ run_dump_test "pr23372b"
+ run_dump_test "pr23372b-x32"
++run_dump_test "pr23486a"
++run_dump_test "pr23486a-x32"
++run_dump_test "pr23486b"
++run_dump_test "pr23486b-x32"
+
+ if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
+ return
+--
+2.20.1
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/always-search-rpath.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/always-search-rpath.patch
new file mode 100644
index 000000000000..2e9956e6b6e4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/always-search-rpath.patch
@@ -0,0 +1,14 @@
+diff --git a/ld/genscripts.sh b/ld/genscripts.sh
+index b6940d376d..0feb1adfd0 100755
+--- a/ld/genscripts.sh
++++ b/ld/genscripts.sh
+@@ -125,6 +125,9 @@ if test "x$NATIVE" = "xyes" ; then
+ USE_LIBPATH=yes
+ fi
+
++# TODO: why is this needed?
++USE_LIBPATH=yes
++
+ # Set the library search path, for libraries named by -lfoo.
+ # If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used.
+ # Otherwise, the default is set here.
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/build-components-separately.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/build-components-separately.patch
new file mode 100644
index 000000000000..d3cd0d2131cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/build-components-separately.patch
@@ -0,0 +1,178 @@
+From bc09a9236f67e710d545ac11bcdac7b55dbcc1a0 Mon Sep 17 00:00:00 2001
+From: John Ericson <John.Ericson@Obsidian.Systems>
+Date: Thu, 12 Oct 2017 11:16:57 -0400
+Subject: [PATCH] Build components separately
+
+---
+ bfd/configure.ac | 18 +++---------------
+ opcodes/Makefile.am | 17 +++++++++++++----
+ opcodes/configure.ac | 45 ++++++---------------------------------------
+ 3 files changed, 22 insertions(+), 58 deletions(-)
+
+diff --git a/bfd/configure.ac b/bfd/configure.ac
+index 9a183c1628..8728837384 100644
+--- a/bfd/configure.ac
++++ b/bfd/configure.ac
+@@ -241,31 +241,19 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
+
+ LT_LIB_M
+
+-# When building a shared libbfd, link against the pic version of libiberty
+-# so that apps that use libbfd won't need libiberty just to satisfy any
+-# libbfd references.
+-# We can't do that if a pic libiberty is unavailable since including non-pic
+-# code would insert text relocations into libbfd.
+ SHARED_LIBADD=
+-SHARED_LDFLAGS=
++SHARED_LDFLAGS=-liberty
+ if test "$enable_shared" = "yes"; then
+-changequote(,)dnl
+- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
+-changequote([,])dnl
+- if test -n "$x"; then
+- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
+- fi
+-
+ # More hacks to build DLLs on Windows.
+ case "${host}" in
+ *-*-cygwin*)
+ SHARED_LDFLAGS="-no-undefined"
+- SHARED_LIBADD="-L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin -lkernel32"
++ SHARED_LIBADD="-liberty -lintl -lcygwin -lkernel32"
+ ;;
+
+ # Hack to build or1k-src on OSX
+ or1k*-*-darwin*)
+- SHARED_LIBADD="-L`pwd`/../libiberty/pic -L`pwd`/../intl -liberty -lintl"
++ SHARED_LIBADD="-liberty -lintl"
+ ;;
+ esac
+
+diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
+index 925e7ff651..47b395c195 100644
+--- a/opcodes/Makefile.am
++++ b/opcodes/Makefile.am
+@@ -52,7 +52,7 @@ libopcodes_la_LDFLAGS += -rpath $(rpath_bfdlibdir)
+ endif
+
+ # This is where bfd.h lives.
+-BFD_H = ../bfd/bfd.h
++BFD_H = $(BFDDIR)/bfd.h
+
+ BUILD_LIBS = @BUILD_LIBS@
+ BUILD_LIB_DEPS = @BUILD_LIB_DEPS@
+@@ -303,7 +303,7 @@ OFILES = @BFD_MACHINES@
+ # development.sh is used to determine -Werror default.
+ CONFIG_STATUS_DEPENDENCIES = $(BFDDIR)/development.sh
+
+-AM_CPPFLAGS = -I. -I$(srcdir) -I../bfd -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
++AM_CPPFLAGS = -I. -I$(srcdir) -I$(INCDIR) -I$(BFDDIR) @HDEFINES@ @INCINTL@
+
+ disassemble.lo: disassemble.c
+ if am__fastdepCC
+@@ -324,12 +324,21 @@ libopcodes_la_SOURCES = dis-buf.c disassemble.c dis-init.c
+ # old version of libbfd, or to pick up libbfd for the wrong architecture
+ # if host != build. So for building with shared libraries we use a
+ # hardcoded path to libbfd.so instead of relying on the entries in libbfd.la.
+-libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@
++libopcodes_la_DEPENDENCIES = $(OFILES) @SHARED_DEPENDENCIES@ libtool-soversion
+ libopcodes_la_LIBADD = $(OFILES) @SHARED_LIBADD@
+-libopcodes_la_LDFLAGS += -release `cat ../bfd/libtool-soversion` @SHARED_LDFLAGS@
++libopcodes_la_LDFLAGS += -release `cat libtool-soversion` @SHARED_LDFLAGS@
+ # Allow dependency tracking to work on all the source files.
+ EXTRA_libopcodes_la_SOURCES = $(LIBOPCODES_CFILES)
+
++libtool-soversion:
++ @echo "creating $@"
++ bfd_soversion="$(VERSION)" ;\
++ . $(BFDDIR)/development.sh ;\
++ if test "$$development" = true ; then \
++ bfd_soversion="$(VERSION).$${bfd_version_date}" ;\
++ fi ;\
++ echo "$${bfd_soversion}" > $@
++
+ # libtool will build .libs/libopcodes.a. We create libopcodes.a in
+ # the build directory so that we don't have to convert all the
+ # programs that use libopcodes.a simultaneously. This is a hack which
+diff --git a/opcodes/configure.ac b/opcodes/configure.ac
+index b9f5eb8a4f..ef2c2152b7 100644
+--- a/opcodes/configure.ac
++++ b/opcodes/configure.ac
+@@ -89,6 +89,7 @@ AC_PROG_INSTALL
+
+ AC_CHECK_HEADERS(string.h strings.h stdlib.h limits.h)
+ ACX_HEADER_STRING
++GCC_HEADER_STDINT(bfd_stdint.h)
+
+ AC_CHECK_DECLS([basename, stpcpy])
+
+@@ -134,61 +135,27 @@ AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
+
+ LT_LIB_M
+
+-#Libs for generator progs
+-if test "x$cross_compiling" = "xno"; then
+- BUILD_LIBS=../libiberty/libiberty.a
+- BUILD_LIB_DEPS=$BUILD_LIBS
+-else
+- # if cross-compiling, assume that the system provides -liberty
+- # and that the version is compatible with new headers.
+- BUILD_LIBS=-liberty
+- BUILD_LIB_DEPS=
+-fi
+-BUILD_LIBS="$BUILD_LIBS $LIBINTL"
+-BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP"
++BUILD_LIBS="-liberty $LIBINTL"
++BUILD_LIB_DEPS="$LIBINTL_DEP"
+
+ AC_SUBST(BUILD_LIBS)
+ AC_SUBST(BUILD_LIB_DEPS)
+
+ # Horrible hacks to build DLLs on Windows and a shared library elsewhere.
+ SHARED_LDFLAGS=
+-SHARED_LIBADD=
++SHARED_LIBADD=-liberty
+ SHARED_DEPENDENCIES=
+ if test "$enable_shared" = "yes"; then
+-# When building a shared libopcodes, link against the pic version of libiberty
+-# so that apps that use libopcodes won't need libiberty just to satisfy any
+-# libopcodes references.
+-# We can't do that if a pic libiberty is unavailable since including non-pic
+-# code would insert text relocations into libopcodes.
+ # Note that linking against libbfd as we do here, which is itself linked
+ # against libiberty, may not satisfy all the libopcodes libiberty references
+ # since libbfd may not pull in the entirety of libiberty.
+-changequote(,)dnl
+- x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
+-changequote([,])dnl
+- if test -n "$x"; then
+- SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
+- fi
+-
+ case "${host}" in
+ *-*-cygwin*)
+ SHARED_LDFLAGS="-no-undefined"
+- SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty -L`pwd`/../intl -lintl -lcygwin"
++ SHARED_LIBADD="-lbfd -liberty -lintl -lcygwin"
+ ;;
+- *-*-darwin*)
+- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.dylib ${SHARED_LIBADD}"
+- SHARED_DEPENDENCIES="../bfd/libbfd.la"
+- ;;
+ *)
+- case "$host_vendor" in
+- hp)
+- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.sl ${SHARED_LIBADD}"
+- ;;
+- *)
+- SHARED_LIBADD="-Wl,`pwd`/../bfd/.libs/libbfd.so ${SHARED_LIBADD}"
+- ;;
+- esac
+- SHARED_DEPENDENCIES="../bfd/libbfd.la"
++ SHARED_LIBADD="-lbfd ${SHARED_LIBADD}"
+ ;;
+ esac
+
+--
+2.14.2
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
new file mode 100644
index 000000000000..b352e63a27cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/default.nix
@@ -0,0 +1,172 @@
+{ stdenv, lib, buildPackages
+, fetchFromGitHub, fetchurl, zlib, autoreconfHook, gettext
+# Enabling all targets increases output size to a multiple.
+, withAllTargets ? false, libbfd, libopcodes
+, enableShared ? true
+, noSysDirs
+, gold ? !stdenv.buildPlatform.isDarwin || stdenv.hostPlatform == stdenv.targetPlatform
+, bison ? null
+, flex
+, texinfo
+}:
+
+# 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.
+
+let
+ reuseLibs = enableShared && withAllTargets;
+
+ # Remove gold-symbol-visibility patch when updating, the proper fix
+ # is now upstream.
+ # https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=330b90b5ffbbc20c5de6ae6c7f60c40fab2e7a4f;hp=99181ccac0fc7d82e7dabb05dc7466e91f1645d3
+ version = "2.31.1";
+ basename = "binutils";
+ # The targetPrefix prepended to binary names to allow multiple binuntils on the
+ # PATH to both be usable.
+ targetPrefix = lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+ "${stdenv.targetPlatform.config}-";
+ vc4-binutils-src = fetchFromGitHub {
+ owner = "itszor";
+ repo = "binutils-vc4";
+ rev = "708acc851880dbeda1dd18aca4fd0a95b2573b36";
+ sha256 = "1kdrz6fki55lm15rwwamn74fnqpy0zlafsida2zymk76n3656c63";
+ };
+ # HACK to ensure that we preserve source from bootstrap binutils to not rebuild LLVM
+ normal-src = stdenv.__bootPackages.binutils-unwrapped.src or (fetchurl {
+ url = "mirror://gnu/binutils/${basename}-${version}.tar.bz2";
+ sha256 = "1l34hn1zkmhr1wcrgf0d4z7r3najxnw3cx2y2fk7v55zjlk3ik7z";
+ });
+in
+
+stdenv.mkDerivation {
+ pname = targetPrefix + basename;
+ inherit version;
+
+ src = if stdenv.targetPlatform.isVc4 then vc4-binutils-src else normal-src;
+
+ patches = [
+ # Make binutils output deterministic by default.
+ ./deterministic.patch
+
+ # Bfd looks in BINDIR/../lib for some plugins that don't
+ # exist. This is pointless (since users can't install plugins
+ # there) and causes a cycle between the lib and bin outputs, so
+ # get rid of it.
+ ./no-plugins.patch
+
+ # Help bfd choose between elf32-littlearm, elf32-littlearm-symbian, and
+ # elf32-littlearm-vxworks in favor of the first.
+ # https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766
+ ./disambiguate-arm-targets.patch
+
+ # For some reason bfd ld doesn't search DT_RPATH when cross-compiling. It's
+ # not clear why this behavior was decided upon but it has the unfortunate
+ # consequence that the linker will fail to find transitive dependencies of
+ # shared objects when cross-compiling. Consequently, we are forced to
+ # override this behavior, forcing ld to search DT_RPATH even when
+ # cross-compiling.
+ ./always-search-rpath.patch
+
+ ] ++ lib.optionals (!stdenv.targetPlatform.isVc4)
+ [
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=22868
+ ./gold-symbol-visibility.patch
+
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=23428
+ # un-break features so linking against musl doesn't produce crash-only binaries
+ ./0001-x86-Add-a-GNU_PROPERTY_X86_ISA_1_USED-note-if-needed.patch
+ ./0001-x86-Properly-merge-GNU_PROPERTY_X86_ISA_1_USED.patch
+ ./0001-x86-Properly-add-X86_ISA_1_NEEDED-property.patch
+ ] ++ lib.optional stdenv.targetPlatform.isiOS ./support-ios.patch;
+
+ outputs = [ "out" "info" "man" ];
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [
+ bison
+ ] ++ (lib.optionals stdenv.targetPlatform.isiOS [
+ autoreconfHook
+ ]) ++ lib.optionals stdenv.targetPlatform.isVc4 [ texinfo flex ];
+ buildInputs = [ zlib gettext ];
+
+ inherit noSysDirs;
+
+ preConfigure = ''
+ # Clear the default library search path.
+ if test "$noSysDirs" = "1"; then
+ echo 'NATIVE_LIB_DIRS=' >> ld/configure.tgt
+ fi
+
+ # Use symlinks instead of hard links to save space ("strip" in the
+ # fixup phase strips each hard link separately).
+ for i in binutils/Makefile.in gas/Makefile.in ld/Makefile.in gold/Makefile.in; do
+ sed -i "$i" -e 's|ln |ln -s |'
+ done
+ '';
+
+ # As binutils takes part in the stdenv building, we don't want references
+ # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+ NIX_CFLAGS_COMPILE = if stdenv.hostPlatform.isDarwin
+ then "-Wno-string-plus-int -Wno-deprecated-declarations"
+ else "-static-libgcc";
+
+ hardeningDisable = [ "format" "pie" ];
+
+ # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
+ configurePlatforms = [ "build" "host" ] ++ lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
+
+ configureFlags =
+ (if enableShared then [ "--enable-shared" "--disable-static" ]
+ else [ "--disable-shared" "--enable-static" ])
+ ++ lib.optional withAllTargets "--enable-targets=all"
+ ++ [
+ "--enable-64-bit-bfd"
+ "--with-system-zlib"
+
+ "--enable-deterministic-archives"
+ "--disable-werror"
+ "--enable-fix-loongson2f-nop"
+
+ # Turn on --enable-new-dtags by default to make the linker set
+ # RUNPATH instead of RPATH on binaries. This is important because
+ # RUNPATH can be overriden using LD_LIBRARY_PATH at runtime.
+ "--enable-new-dtags"
+ ] ++ lib.optionals gold [ "--enable-gold" "--enable-plugins" ];
+
+ doCheck = false; # fails
+
+ postFixup = lib.optionalString reuseLibs ''
+ rm "$out"/lib/lib{bfd,opcodes}-${version}.so
+ ln -s '${lib.getLib libbfd}/lib/libbfd-${version}.so' "$out/lib/"
+ ln -s '${lib.getLib libopcodes}/lib/libopcodes-${version}.so' "$out/lib/"
+ '';
+
+ # else fails with "./sanity.sh: line 36: $out/bin/size: not found"
+ doInstallCheck = stdenv.buildPlatform == stdenv.hostPlatform && stdenv.hostPlatform == stdenv.targetPlatform;
+
+ enableParallelBuilding = true;
+
+ passthru = {
+ inherit targetPrefix;
+ };
+
+ meta = with lib; {
+ description = "Tools for manipulating binaries (linker, assembler, etc.)";
+ longDescription = ''
+ The GNU Binutils are a collection of binary tools. The main
+ ones are `ld' (the GNU linker) and `as' (the GNU assembler).
+ They also include the BFD (Binary File Descriptor) library,
+ `gprof', `nm', `strip', etc.
+ '';
+ homepage = "https://www.gnu.org/software/binutils/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ ericson2314 ];
+ platforms = platforms.unix;
+
+ /* Give binutils a lower priority than gcc-wrapper to prevent a
+ collision due to the ld/as wrappers/symlinks in the latter. */
+ priority = 10;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/deterministic.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/deterministic.patch
new file mode 100644
index 000000000000..736e0aca6ce1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/deterministic.patch
@@ -0,0 +1,12 @@
+diff -ur orig/binutils-2.23.1/ld/ldlang.c binutils-2.23.1/ld/ldlang.c
+--- orig/ld/ldlang.c
++++ new/ld/ldlang.c
+@@ -3095,6 +3095,8 @@
+ ldfile_output_machine))
+ einfo (_("%P%F:%s: can not set architecture: %E\n"), name);
+
++ link_info.output_bfd->flags |= BFD_DETERMINISTIC_OUTPUT;
++
+ link_info.hash = bfd_link_hash_table_create (link_info.output_bfd);
+ if (link_info.hash == NULL)
+ einfo (_("%P%F: can not create hash table: %E\n"));
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
new file mode 100644
index 000000000000..abbfa73da05d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/disambiguate-arm-targets.patch
@@ -0,0 +1,23 @@
+diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
+index 9f956d3..f5b61f1 100644
+--- a/bfd/elf32-arm.c
++++ b/bfd/elf32-arm.c
+@@ -19585,7 +19585,10 @@ elf32_arm_vxworks_final_write_processing (bfd *abfd, bfd_boolean linker)
+ #undef ELF_MAXPAGESIZE
+ #define ELF_MAXPAGESIZE 0x1000
+
++/* Prioritize elf32-*arm (priority 1) over elf32-*arm-vxworks (priority 2) */
++#define elf_match_priority 2
+ #include "elf32-target.h"
++#undef elf_match_priority
+
+
+ /* Merge backend specific data from an object file to the output
+@@ -19974,4 +19977,7 @@ elf32_arm_symbian_plt_sym_val (bfd_vma i, const asection *plt,
+ #undef ELF_MAXPAGESIZE
+ #define ELF_MAXPAGESIZE 0x8000
+
++/* Prioritize elf32-*arm (priority 1) over elf32-*arm-symbian (priority 2) */
++#define elf_match_priority 2
+ #include "elf32-target.h"
++#undef elf_match_priority
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/gold-symbol-visibility.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/gold-symbol-visibility.patch
new file mode 100644
index 000000000000..0fb05a482d1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/gold-symbol-visibility.patch
@@ -0,0 +1,79 @@
+commit 8564af037f5c4c6d2744a89497691359205b2bbc
+Author: Shea Levy <shea@shealevy.com>
+Date: Mon Mar 19 10:52:40 2018 -0400
+
+ Revert "Allow multiply-defined absolute symbols when they have the same value."
+
+ This reverts commit 5dc824ed42cd173c1525f5abc76f4091f11a4dbc.
+
+diff --git a/gold/ChangeLog-2017 b/gold/ChangeLog-2017
+index b2a47710b5..d7ca1b48c0 100644
+--- a/gold/ChangeLog-2017
++++ b/gold/ChangeLog-2017
+@@ -114,11 +114,6 @@
+ (localedir): Define as @localedir@.
+ (gnulocaledir, gettextsrcdir): Use @datarootdir@.
+
+-2017-11-28 Cary Coutant <ccoutant@gmail.com>
+-
+- * resolve.cc (Symbol_table::resolve): Allow multiply-defined absolute
+- symbols when they have the same value.
+-
+ 2017-11-28 Cary Coutant <ccoutant@gmail.com>
+
+ * object.h (class Sized_relobj_file): Remove discarded_eh_frame_shndx_.
+diff --git a/gold/resolve.cc b/gold/resolve.cc
+index 4a5784cf8b..803576bfed 100644
+--- a/gold/resolve.cc
++++ b/gold/resolve.cc
+@@ -247,28 +247,18 @@ Symbol_table::resolve(Sized_symbol<size>* to,
+ Object* object, const char* version,
+ bool is_default_version)
+ {
+- bool to_is_ordinary;
+- const unsigned int to_shndx = to->shndx(&to_is_ordinary);
+-
+ // It's possible for a symbol to be defined in an object file
+ // using .symver to give it a version, and for there to also be
+ // a linker script giving that symbol the same version. We
+ // don't want to give a multiple-definition error for this
+ // harmless redefinition.
++ bool to_is_ordinary;
+ if (to->source() == Symbol::FROM_OBJECT
+ && to->object() == object
+- && to->is_defined()
+ && is_ordinary
++ && to->is_defined()
++ && to->shndx(&to_is_ordinary) == st_shndx
+ && to_is_ordinary
+- && to_shndx == st_shndx
+- && to->value() == sym.get_st_value())
+- return;
+-
+- // Likewise for an absolute symbol defined twice with the same value.
+- if (!is_ordinary
+- && st_shndx == elfcpp::SHN_ABS
+- && !to_is_ordinary
+- && to_shndx == elfcpp::SHN_ABS
+ && to->value() == sym.get_st_value())
+ return;
+
+@@ -360,8 +350,8 @@ Symbol_table::resolve(Sized_symbol<size>* to,
+ && (sym.get_st_bind() == elfcpp::STB_WEAK
+ || to->binding() == elfcpp::STB_WEAK)
+ && orig_st_shndx != elfcpp::SHN_UNDEF
++ && to->shndx(&to_is_ordinary) != elfcpp::SHN_UNDEF
+ && to_is_ordinary
+- && to_shndx != elfcpp::SHN_UNDEF
+ && sym.get_st_size() != 0 // Ignore weird 0-sized symbols.
+ && to->symsize() != 0
+ && (sym.get_st_type() != to->type()
+@@ -372,7 +362,7 @@ Symbol_table::resolve(Sized_symbol<size>* to,
+ {
+ Symbol_location fromloc
+ = { object, orig_st_shndx, static_cast<off_t>(sym.get_st_value()) };
+- Symbol_location toloc = { to->object(), to_shndx,
++ Symbol_location toloc = { to->object(), to->shndx(&to_is_ordinary),
+ static_cast<off_t>(to->value()) };
+ this->candidate_odr_violations_[to->name()].insert(fromloc);
+ this->candidate_odr_violations_[to->name()].insert(toloc);
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/no-plugins.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/no-plugins.patch
new file mode 100644
index 000000000000..9624b7976b70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/no-plugins.patch
@@ -0,0 +1,19 @@
+diff -ru binutils-2.27-orig/bfd/plugin.c binutils-2.27/bfd/plugin.c
+--- binutils-2.27-orig/bfd/plugin.c 2016-10-14 17:46:30.791315555 +0200
++++ binutils-2.27/bfd/plugin.c 2016-10-14 17:46:38.583298765 +0200
+@@ -333,6 +333,7 @@
+ if (plugin_program_name == NULL)
+ return found;
+
++#if 0
+ plugin_dir = concat (BINDIR, "/../lib/bfd-plugins", NULL);
+ p = make_relative_prefix (plugin_program_name,
+ BINDIR,
+@@ -364,6 +365,7 @@
+ free (p);
+ if (d)
+ closedir (d);
++#endif
+
+ return found;
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/support-ios.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/support-ios.patch
new file mode 100644
index 000000000000..74e56d130ed5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/binutils/support-ios.patch
@@ -0,0 +1,168 @@
+diff --git a/bfd/config.bfd b/bfd/config.bfd
+index f04a993f06..1e24a9d030 100644
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -238,7 +238,7 @@ case "${targ}" in
+
+ # START OF targmatch.h
+ #ifdef BFD64
+- aarch64-*-darwin*)
++ aarch64-*-darwin* | aarch64-*-ios*)
+ targ_defvec=aarch64_mach_o_vec
+ targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
+ targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
+@@ -358,7 +358,7 @@ case "${targ}" in
+ targ_selvecs=arc_elf32_be_vec
+ ;;
+
+- arm-*-darwin*)
++ arm-*-darwin* | arm-*-ios*)
+ targ_defvec=arm_mach_o_vec
+ targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
+ targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
+@@ -678,7 +678,7 @@ case "${targ}" in
+ i[3-7]86-*-aix*)
+ targ_defvec=i386_coff_vec
+ ;;
+- i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
++ i[3-7]86-*-darwin* | i[3-7]86-*-ios* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
+ targ_defvec=i386_mach_o_vec
+ targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+ targ64_selvecs=x86_64_mach_o_vec
+@@ -762,7 +762,7 @@ case "${targ}" in
+ targ_defvec=x86_64_elf64_cloudabi_vec
+ want64=true
+ ;;
+- x86_64-*-darwin*)
++ x86_64-*-darwin* | x86_64-*-ios*)
+ targ_defvec=x86_64_mach_o_vec
+ targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+ targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
+@@ -1402,7 +1402,7 @@ case "${targ}" in
+ targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
+ targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
+ ;;
+- powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
++ powerpc-*-darwin* | powerpc-*-ios* | powerpc-*-macos10* | powerpc-*-rhapsody*)
+ targ_defvec=mach_o_be_vec
+ targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+ targ_archs="$targ_archs bfd_i386_arch"
+diff --git a/configure.ac b/configure.ac
+index aae94501e4..2cceb4dad4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -510,7 +510,7 @@ if test x$enable_libgomp = x ; then
+ ;;
+ *-*-solaris2* | *-*-hpux11*)
+ ;;
+- *-*-darwin* | *-*-aix*)
++ *-*-darwin* | *-*-ios* | *-*-aix*)
+ ;;
+ nvptx*-*-*)
+ ;;
+@@ -700,13 +700,13 @@ esac
+
+ # Disable libffi for some systems.
+ case "${target}" in
+- powerpc-*-darwin*)
++ powerpc-*-darwin* | powerpc-*-ios*)
+ ;;
+- i[[3456789]]86-*-darwin*)
++ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*)
+ ;;
+- x86_64-*-darwin[[912]]*)
++ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*)
+ ;;
+- *-*-darwin*)
++ *-*-darwin* | *-*-ios*)
+ noconfigdirs="$noconfigdirs target-libffi"
+ ;;
+ *-*-netware*)
+@@ -788,7 +788,7 @@ esac
+ # Disable the go frontend on systems where it is known to not work. Please keep
+ # this in sync with contrib/config-list.mk.
+ case "${target}" in
+-*-*-darwin* | *-*-cygwin* | *-*-mingw*)
++*-*-darwin* | *-*-ios* | *-*-cygwin* | *-*-mingw*)
+ unsupported_languages="$unsupported_languages go"
+ ;;
+ esac
+@@ -797,7 +797,7 @@ esac
+ # For testing, you can easily override this with --enable-libgo.
+ if test x$enable_libgo = x; then
+ case "${target}" in
+- *-*-darwin*)
++ *-*-darwin* | *-*-ios*)
+ # PR 46986
+ noconfigdirs="$noconfigdirs target-libgo"
+ ;;
+@@ -916,27 +916,27 @@ esac
+ case "${target}" in
+ *-*-chorusos)
+ ;;
+- aarch64-*-darwin*)
++ aarch64-*-darwin* | aarch64-*-ios*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- arm-*-darwin*)
++ arm-*-darwin* | arm-*-ios*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- powerpc-*-darwin*)
++ powerpc-*-darwin* | powerpc-*-ios*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- i[[3456789]]86-*-darwin*)
++ i[[3456789]]86-*-darwin* | i[[3456789]]86-*-ios*)
+ noconfigdirs="$noconfigdirs ld gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- x86_64-*-darwin[[912]]*)
++ x86_64-*-darwin[[912]]* | x86_64-*-ios[[912]]*)
+ noconfigdirs="$noconfigdirs ld gas gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- *-*-darwin*)
++ *-*-darwin* | *-*-ios*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+@@ -1226,7 +1226,7 @@ case "${host}" in
+ hppa*-*)
+ host_makefile_frag="config/mh-pa"
+ ;;
+- *-*-darwin*)
++ *-*-darwin* | *-*-ios*)
+ host_makefile_frag="config/mh-darwin"
+ ;;
+ powerpc-*-aix*)
+@@ -1697,7 +1697,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
+ build_lto_plugin=yes
+ ],[if test x"$default_enable_lto" = x"yes" ; then
+ case $target in
+- *-apple-darwin[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;;
++ *-apple-darwin[[912]]* | *-apple-ios[[912]]* | *-cygwin* | *-mingw* | *djgpp*) ;;
+ # On other non-ELF platforms, LTO has yet to be validated.
+ *) enable_lto=no ;;
+ esac
+@@ -1708,7 +1708,7 @@ ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
+ # warn during gcc/ subconfigure; unless you're bootstrapping with
+ # -flto it won't be needed until after installation anyway.
+ case $target in
+- *-cygwin* | *-mingw* | *-apple-darwin* | *djgpp*) ;;
++ *-cygwin* | *-mingw* | *-apple-darwin* | *-apple-ios* | *djgpp*) ;;
+ *) if test x"$enable_lto" = x"yes"; then
+ AC_MSG_ERROR([LTO support is not enabled for this target.])
+ fi
+@@ -2590,7 +2590,7 @@ rm -f conftest*
+ # Decide which environment variable is used to find dynamic libraries.
+ case "${host}" in
+ *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
+- *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
++ *-*-darwin* | *-*-ios* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
+ *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
+ *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
+ esac
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix
new file mode 100644
index 000000000000..08496d9f5202
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, autoPatchelfHook
+, writeShellScript
+, curl
+, jq
+, common-updater-scripts
+}:
+
+stdenv.mkDerivation rec {
+ pname = "blackfire-agent";
+ version = "1.44.1";
+
+ src = fetchurl {
+ url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire-php/blackfire-agent_${version}_amd64.deb";
+ sha256 = "1p00flipm5x6r36gblfrfrd14byipilybrhfzv8rzpahz2b7r5hb";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ ];
+
+ dontUnpack = true;
+
+ installPhase = ''
+ runHook preInstall
+
+ dpkg-deb -x $src $out
+ mv $out/usr/* $out
+ rmdir $out/usr
+
+ runHook postInstall
+ '';
+
+ passthru = {
+ updateScript = writeShellScript "update-${pname}" ''
+ export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}"
+ update-source-version "$UPDATE_NIX_ATTR_PATH" "$(curl https://blackfire.io/api/v1/releases | jq .agent --raw-output)"
+ '';
+ };
+
+ meta = with lib; {
+ description = "Blackfire Profiler agent and client";
+ homepage = "https://blackfire.io/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix
new file mode 100644
index 000000000000..5de2a05349a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, lib
+, fetchurl
+, dpkg
+, autoPatchelfHook
+, php
+, writeShellScript
+, curl
+, jq
+, common-updater-scripts
+}:
+
+let
+ soFile = {
+ "7.3" = "blackfire-20180731";
+ "7.4" = "blackfire-20190902";
+ }.${lib.versions.majorMinor php.version} or (throw "Unsupported PHP version.");
+in stdenv.mkDerivation rec {
+ pname = "php-blackfire";
+ version = "1.41.0";
+
+ src = fetchurl {
+ url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire-php/blackfire-php_${version}_amd64.deb";
+ sha256 = "0vbl48bccswk9ygb4sshn24cl33fk0xg8d1bcg7ihvdc45any9ww";
+ };
+
+ nativeBuildInputs = [
+ dpkg
+ autoPatchelfHook
+ ];
+
+ unpackPhase = ''
+ runHook preUnpack
+
+ dpkg-deb -x $src pkg
+ sourceRoot=pkg
+
+ runHook postUnpack
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -D usr/lib/blackfire-php/amd64/${soFile}${lib.optionalString php.ztsSupport "-zts"}.so $out/lib/php/extensions/blackfire.so
+
+ runHook postInstall
+ '';
+
+ passthru = {
+ updateScript = writeShellScript "update-${pname}" ''
+ export PATH="${lib.makeBinPath [ curl jq common-updater-scripts ]}"
+ update-source-version "$UPDATE_NIX_ATTR_PATH" "$(curl https://blackfire.io/api/v1/releases | jq .probe.php --raw-output)"
+ '';
+ };
+
+ meta = with lib; {
+ description = "Blackfire Profiler PHP module";
+ homepage = "https://blackfire.io/";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
new file mode 100644
index 000000000000..48ae364a26eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, lib, fetchFromGitHub
+, gcc-arm-embedded, libftdi1, libusb-compat-0_1, pkgconfig
+, python, pythonPackages
+}:
+
+with lib;
+
+stdenv.mkDerivation rec {
+ pname = "blackmagic";
+ version = "unstable-2020-08-05";
+ # `git describe --always`
+ firmwareVersion = "v1.6.1-539-gdd74ec8";
+
+ src = fetchFromGitHub {
+ owner = "blacksphere";
+ repo = "blackmagic";
+ rev = "dd74ec8e6f734302daa1ee361af88dfb5043f166";
+ sha256 = "18w8y64fs7wfdypa4vm3migk5w095z8nbd8qp795f322mf2bz281";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ gcc-arm-embedded pkgconfig
+ ];
+
+ buildInputs = [
+ libftdi1
+ libusb-compat-0_1
+ python
+ pythonPackages.intelhex
+ ];
+
+ postPatch = ''
+ # Prevent calling out to `git' to generate a version number:
+ substituteInPlace src/Makefile \
+ --replace '$(shell git describe --always --dirty)' '${firmwareVersion}'
+
+ # Fix scripts that generate headers:
+ for f in $(find scripts libopencm3/scripts -type f); do
+ patchShebangs "$f"
+ done
+ '';
+
+ buildPhase = "${stdenv.shell} ${./helper.sh}";
+ installPhase = ":"; # buildPhase does this.
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "In-application debugger for ARM Cortex microcontrollers";
+ longDescription = ''
+ The Black Magic Probe is a modern, in-application debugging tool
+ for embedded microprocessors. It allows you to see what is going
+ on "inside" an application running on an embedded microprocessor
+ while it executes.
+
+ This package builds the firmware for all supported platforms,
+ placing them in separate directories under the firmware
+ directory. It also places the FTDI version of the blackmagic
+ executable in the bin directory.
+ '';
+ homepage = "https://github.com/blacksphere/blackmagic";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ pjones emily sorki ];
+ # fails on darwin with
+ # arm-none-eabi-gcc: error: unrecognized command line option '-iframework'
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh
new file mode 100755
index 000000000000..bae57f633cfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh
@@ -0,0 +1,52 @@
+################################################################################
+# Build all of the platforms manually since the `all_platforms' target
+# doesn't preserve all of the build outputs and overrides CFLAGS.
+set -e
+set -u
+
+################################################################################
+# Prevent a warning from shellcheck:
+out=${out:-/tmp}
+
+################################################################################
+export CFLAGS=$NIX_CFLAGS_COMPILE
+export MAKEFLAGS="\
+ ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}}"
+
+################################################################################
+PRODUCTS="blackmagic.bin blackmagic.hex blackmagic_dfu.bin blackmagic_dfu.hex"
+
+################################################################################
+make_platform() {
+ echo "Building for hardware platform $1"
+
+ make clean
+ make PROBE_HOST="$1"
+
+ if [ "$1" = "hosted" ]; then
+ install -m 0555 blackmagic "$out/bin"
+ fi
+
+ for f in $PRODUCTS; do
+ if [ -r "$f" ]; then
+ mkdir -p "$out/firmware/$1"
+ install -m 0444 "$f" "$out/firmware/$1"
+ fi
+ done
+
+}
+
+################################################################################
+# Start by building libopencm3:
+make -C libopencm3
+
+################################################################################
+# And now all of the platforms:
+cd src
+
+mkdir -p "$out/bin"
+
+for platform in platforms/*/Makefile.inc; do
+ probe=$(basename "$(dirname "$platform")")
+ make_platform "$probe"
+done
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bin2c.c b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bin2c.c
new file mode 100644
index 000000000000..f0b915de540a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bin2c.c
@@ -0,0 +1,122 @@
+// bin2c.c
+//
+// convert a binary file into a C source vector
+//
+// THE "BEER-WARE LICENSE" (Revision 3.1415):
+// sandro AT sigala DOT it wrote this file. As long as you retain this notice you can do
+// whatever you want with this stuff. If we meet some day, and you think this stuff is
+// worth it, you can buy me a beer in return. Sandro Sigala
+//
+// syntax: bin2c [-c] [-z] <input_file> <output_file>
+//
+// -c add the "const" keyword to definition
+// -z terminate the array with a zero (useful for embedded C strings)
+//
+// examples:
+// bin2c -c myimage.png myimage_png.cpp
+// bin2c -z sometext.txt sometext_txt.cpp
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifndef PATH_MAX
+#define PATH_MAX 1024
+#endif
+
+int useconst = 0;
+int zeroterminated = 0;
+
+int myfgetc(FILE *f)
+{
+ int c = fgetc(f);
+ if (c == EOF && zeroterminated)
+ {
+ zeroterminated = 0;
+ return 0;
+ }
+ return c;
+}
+
+void process(const char *ifname, const char *ofname)
+{
+ FILE *ifile, *ofile;
+ ifile = fopen(ifname, "rb");
+ if (ifile == NULL)
+ {
+ fprintf(stderr, "cannot open %s for reading\n", ifname);
+ exit(1);
+ }
+ ofile = fopen(ofname, "wb");
+ if (ofile == NULL)
+ {
+ fprintf(stderr, "cannot open %s for writing\n", ofname);
+ exit(1);
+ }
+ char buf[PATH_MAX], *p;
+ const char *cp;
+ if ((cp = strrchr(ifname, '/')) != NULL)
+ {
+ ++cp;
+ } else {
+ if ((cp = strrchr(ifname, '\\')) != NULL)
+ ++cp;
+ else
+ cp = ifname;
+ }
+ strcpy(buf, cp);
+ for (p = buf; *p != '\0'; ++p)
+ {
+ if (!isalnum(*p))
+ *p = '_';
+ }
+ fprintf(ofile, "static %sunsigned char %s[] = {\n", useconst ? "const " : "", buf);
+ int c, col = 1;
+ while ((c = myfgetc(ifile)) != EOF)
+ {
+ if (col >= 78 - 6)
+ {
+ fputc('\n', ofile);
+ col = 1;
+ }
+ fprintf(ofile, "0x%.2x, ", c);
+ col += 6;
+ }
+ fprintf(ofile, "\n};\n");
+
+ fclose(ifile);
+ fclose(ofile);
+}
+
+void usage(void)
+{
+ fprintf(stderr, "usage: bin2c [-cz] <input_file> <output_file>\n");
+ exit(1);
+}
+
+int main(int argc, char **argv)
+{
+ while (argc > 3)
+ {
+ if (!strcmp(argv[1], "-c"))
+ {
+ useconst = 1;
+ --argc;
+ ++argv;
+ } else if (!strcmp(argv[1], "-z"))
+ {
+ zeroterminated = 1;
+ --argc;
+ ++argv;
+ } else {
+ usage();
+ }
+ }
+ if (argc != 3)
+ {
+ usage();
+ }
+ process(argv[1], argv[2]);
+ return 0;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bossa-no-applet-build.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bossa-no-applet-build.patch
new file mode 100644
index 000000000000..4284245f485d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/bossa-no-applet-build.patch
@@ -0,0 +1,16 @@
+diff --git a/Makefile b/Makefile
+index cc8882e..97b11ee 100644
+--- a/Makefile
++++ b/Makefile
+@@ -184,11 +184,6 @@ $(foreach src,$(COMMON_SRCS),$(eval $(call common_obj,$(src))))
+ # Applet rules
+ #
+ define applet_obj
+-$(SRCDIR)/$(1:%.asm=%.cpp): $(SRCDIR)/$(1)
+- @echo APPLET $(1:%.asm=%)
+- $$(Q)$$(ARMAS) -o $$(@:%.o=%.obj) $$<
+- $$(Q)$$(ARMOBJCOPY) -O binary $$(@:%.o=%.obj) $$(@:%.o=%.bin)
+- $$(Q)appletgen $(1:%.asm=%) $(SRCDIR) $(OBJDIR)
+ $(OBJDIR)/$(1:%.asm=%.o): $(SRCDIR)/$(1:%.asm=%.cpp)
+ @echo CPP APPLET $$<
+ $$(Q)$$(CXX) $$(COMMON_CXXFLAGS) -c -o $$(@) $$(<:%.asm=%.cpp)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/default.nix
new file mode 100644
index 000000000000..38cc2867650c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bossa/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchgit, wxGTK, libX11, readline }:
+
+let
+ # BOSSA needs a "bin2c" program to embed images.
+ # Source taken from:
+ # http://wiki.wxwidgets.org/Embedding_PNG_Images-Bin2c_In_C
+ bin2c = stdenv.mkDerivation {
+ name = "bossa-bin2c";
+ src = ./bin2c.c;
+ dontUnpack = true;
+ buildPhase = ''cc $src -o bin2c'';
+ installPhase = ''mkdir -p $out/bin; cp bin2c $out/bin/'';
+ };
+
+in
+stdenv.mkDerivation {
+ name = "bossa-1.8";
+
+ src = fetchgit {
+ url = "https://github.com/shumatech/BOSSA";
+ rev = "3be622ca0aa6214a2fc51c1ec682c4a58a423d62";
+ sha256 = "19ik86qbffcb04cgmi4mnascbkck4ynfj87ha65qdk6fmp5q35vm";
+ };
+
+ patches = [ ./bossa-no-applet-build.patch ];
+
+ nativeBuildInputs = [ bin2c ];
+ buildInputs = [ wxGTK libX11 readline ];
+
+ # Explicitly specify targets so they don't get stripped.
+ makeFlags = [ "bin/bossac" "bin/bossash" "bin/bossa" ];
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp bin/bossa{c,sh,} $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A flash programming utility for Atmel's SAM family of flash-based ARM microcontrollers";
+ longDescription = ''
+ BOSSA is a flash programming utility for Atmel's SAM family of
+ flash-based ARM microcontrollers. The motivation behind BOSSA is
+ to create a simple, easy-to-use, open source utility to replace
+ Atmel's SAM-BA software. BOSSA is an acronym for Basic Open
+ Source SAM-BA Application to reflect that goal.
+ '';
+ homepage = "http://www.shumatech.com/web/products/bossa";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bsdbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bsdbuild/default.nix
new file mode 100644
index 000000000000..6ba8064c094d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/bsdbuild/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, fetchurl, perl, libtool, pkgconfig, gettext, mandoc, ed }:
+
+stdenv.mkDerivation rec {
+ pname = "bsdbuild";
+ version = "3.1";
+
+ src = fetchurl {
+ url = "http://stable.hypertriton.com/bsdbuild/${pname}-${version}.tar.gz";
+ sha256 = "1zrdjh7a6z4khhfw9zrp490afq306cpl5v8wqz2z55ys7k1n5ifl";
+ };
+
+ buildInputs = [ perl mandoc ed ];
+ nativeBuildInputs = [ pkgconfig libtool gettext ];
+
+ prePatch = ''
+ #ignore unfamiliar flags
+ substituteInPlace configure \
+ --replace '--sbindir=*' '--sbindir=* | --includedir=* | --oldincludedir=*'
+ #same for packages using bsdbuild
+ substituteInPlace mkconfigure.pl \
+ --replace '--sbindir=*' '--sbindir=* | --includedir=* | --oldincludedir=*'
+ #insert header for missing NULL macro
+ for f in db4.pm sdl_ttf.pm mysql.pm uim.pm strlcpy.pm getpwuid.pm \
+ getaddrinfo.pm strtoll.pm free_null.pm getpwnam_r.pm \
+ gettimeofday.pm gethostbyname.pm xinerama.pm strsep.pm \
+ fontconfig.pm gettext.pm pthreads.pm strlcat.pm kqueue.pm wgl.pm \
+ alsa.pm crypt.pm cracklib.pm freesg-rg.pm edacious.pm mmap.pm \
+ agar.pm x11.pm x11.pm execvp.pm agar-core.pm dyld.pm getopt.pm \
+ strtold.pm sdl_image.pm shl_load.pm glx.pm percgi.pm timerfd.pm \
+ glob.pm dlopen.pm freesg.pm csidl.pm perl.pm select.pm \
+ portaudio.pm etubestore.pm;
+ do
+ed -s -v BSDBuild/$f << EOF
+/#include
+i
+#include <stddef.h>
+.
+w
+EOF
+ done
+ '';
+
+ configureFlags = [
+ "--with-libtool=${libtool}/bin/libtool"
+ "--enable-nls=yes"
+ "--with-gettext=${gettext}"
+ "--with-manpages=yes"
+ ];
+
+ meta = {
+ homepage = "http://bsdbuild.hypertriton.com";
+ description = "A cross-platform build system";
+
+ longDescription = ''
+ BSDBuild is a cross-platform build system. Derived from the
+ traditional 4.4BSD make libraries, BSDBuild allows BSD-style
+ Makefiles (without BSD make extensions), and works natively
+ under most operating systems and make flavors. Since BSDBuild
+ is implemented as a library (as opposed to a macro package),
+ Makefiles are edited directly, as opposed to being compiled
+ (however, if the build directory is separate from the source
+ directory, BSDBuild will produce the required Makefiles in place).
+ '';
+
+ license = stdenv.lib.licenses.bsd3;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/backslashes-quotes.diff b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/backslashes-quotes.diff
new file mode 100644
index 000000000000..cc42f0745da5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/backslashes-quotes.diff
@@ -0,0 +1,49 @@
+Based on this:
+http://sourceforge.net/tracker/?func=detail&aid=1493886&group_id=5152&atid=305152
+fix the infinite loops in quote highlight - ID: 1493886
+
+--- cbrowser-0.8-2/ftcllib.tcl 2000-07-04 01:17:43.000000000 +0200
++++ cbrowser-0.8/ftcllib.tcl 2006-05-24 00:39:18.833762522 +0200
+@@ -1290,13 +1290,39 @@
+ foreach {start end} [concat 1.0 [$widget tag ranges comment] end] {
+
+ while {[set temp [$widget search -regexp -- $pattern $start $end]] != ""} {
++ set startquote [$widget index "$temp + 1chars"]
+
+- set endquote [$widget search -regexp -- {[^\\]\"} "$temp + 1chars" $end]
++ set temp [$widget index "$startquote + 1chars"]
++ while {1==1} {
++ set endquote [$widget search -regexp -- {\"} $temp $end]
++
++ # The program will not break if a /*C comment*/ is between C quotes.
++ if { $endquote == "" } {
++ set endquote $startquote
++ break
++ }
++
++ # look for double backslashes
++ if {[set temp2 [$widget search -regexp -- {\\\\} $temp $endquote]] != ""} {
++ set temp "$temp2 + 2chars"
++ continue
++ }
++
++ # look for \"
++ if {[set temp2 [$widget search -regexp -- {\\\"} $temp $endquote]] != ""} {
++ set temp "$temp2 + 2chars"
++ continue
++ }
++
++ break
++ }
+
+ if {[strlen $endquote] > 0} {
+- set start [$widget index "$endquote + 2chars"]
++ set start [$widget index "$endquote + 1chars"]
+
+- $widget tag add quote "$temp + 1chars" $start
++ $widget tag add quote $startquote $start
++ } else {
++ set start [$widget index "$start + 1chars"]
+ }
+ }
+ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
new file mode 100644
index 000000000000..f3ba4b3a70d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cbrowser/default.nix
@@ -0,0 +1,34 @@
+{ fetchurl, stdenv, tk, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "cbrowser-0.8";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/cbrowser/cbrowser-0.8.tar.gz";
+ sha256 = "1050mirjab23qsnq3lp3a9vwcbavmh9kznzjm7dr5vkx8b7ffcji";
+ };
+
+ patches = [ ./backslashes-quotes.diff ];
+
+ buildInputs = [ tk makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin $out/share/${name}
+ cp -R * $out/share/${name}/
+
+ makeWrapper $out/share/${name}/cbrowser $out/bin/cbrowser \
+ --prefix PATH : ${tk}/bin
+ '';
+
+ meta = {
+ description = "Tcl/Tk GUI front-end to cscope";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ homepage = "https://sourceforge.net/projects/cbrowser/";
+
+ maintainers = with stdenv.lib.maintainers; [viric];
+
+ platforms = with stdenv.lib.platforms; linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix
new file mode 100644
index 000000000000..6be0ab2acb50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, boost
+, libusb1
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cc-tool";
+ version = "unstable-2020-05-19";
+
+ src = fetchFromGitHub {
+ owner = "dashesy";
+ repo = pname;
+ rev = "19e707eafaaddee8b996ad27a9f3e1aafcb900d2";
+ hash = "sha256:1f78j498fdd36xbci57jkgh25gq14g3b6xmp76imdpar0jkpyljv";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkg-config ];
+ buildInputs = [ boost libusb1 ];
+
+ postPatch = ''
+ substituteInPlace udev/90-cc-debugger.rules \
+ --replace 'MODE="0666"' 'MODE="0660", GROUP="plugdev", TAG+="uaccess"'
+ '';
+
+ postInstall = ''
+ install -D udev/90-cc-debugger.rules $out/lib/udev/rules.d/90-cc-debugger.rules
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Command line tool for the Texas Instruments CC Debugger";
+ longDescription = ''
+ cc-tool provides support for Texas Instruments CC Debugger
+ '';
+ homepage = "https://github.com/dashesy/cc-tool";
+ license = licenses.gpl2;
+ platforms = with platforms; linux ++ darwin;
+ maintainers = [ maintainers.CRTified ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccache/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
new file mode 100644
index 000000000000..e0a6a8065b5a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchFromGitHub, asciidoc-full, gperf, perl, autoreconfHook, zlib, makeWrapper }:
+
+let ccache = stdenv.mkDerivation rec {
+ pname = "ccache";
+ version = "3.7.11";
+
+ src = fetchFromGitHub {
+ owner = "ccache";
+ repo = "ccache";
+ rev = "v${version}";
+ sha256 = "03c6riz4vb0jipplk69c1j8arjjrjn676kglsrzqf8cidrh8j91c";
+ };
+
+ nativeBuildInputs = [ asciidoc-full autoreconfHook gperf perl ];
+
+ buildInputs = [ zlib ];
+
+ outputs = [ "out" "man" ];
+
+ doCheck = !stdenv.isDarwin;
+
+ passthru = {
+ # A derivation that provides gcc and g++ commands, but that
+ # will end up calling ccache for the given cacheDir
+ links = {unwrappedCC, extraConfig}: stdenv.mkDerivation {
+ name = "ccache-links";
+ passthru = {
+ isClang = unwrappedCC.isClang or false;
+ isGNU = unwrappedCC.isGNU or false;
+ };
+ inherit (unwrappedCC) lib;
+ nativeBuildInputs = [ makeWrapper ];
+ buildCommand = ''
+ mkdir -p $out/bin
+
+ wrap() {
+ local cname="$1"
+ if [ -x "${unwrappedCC}/bin/$cname" ]; then
+ makeWrapper ${ccache}/bin/ccache $out/bin/$cname \
+ --run ${stdenv.lib.escapeShellArg extraConfig} \
+ --add-flags ${unwrappedCC}/bin/$cname
+ fi
+ }
+
+ wrap cc
+ wrap c++
+ wrap gcc
+ wrap g++
+ wrap clang
+ wrap clang++
+
+ for executable in $(ls ${unwrappedCC}/bin); do
+ if [ ! -x "$out/bin/$executable" ]; then
+ ln -s ${unwrappedCC}/bin/$executable $out/bin/$executable
+ fi
+ done
+ for file in $(ls ${unwrappedCC} | grep -vw bin); do
+ ln -s ${unwrappedCC}/$file $out/$file
+ done
+ '';
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Compiler cache for fast recompilation of C/C++ code";
+ homepage = "https://ccache.dev/";
+ downloadPage = "https://ccache.dev/download.html";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ };
+};
+in ccache
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
new file mode 100644
index 000000000000..ba57ef561f3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub
+, cmake, llvmPackages, rapidjson, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "ccls";
+ version = "0.20190823.6";
+
+ src = fetchFromGitHub {
+ owner = "MaskRay";
+ repo = "ccls";
+ rev = version;
+ sha256 = "11h5nwk4qqshf3i8yr4bxpnvmidrhkzd0zxhf1xqv8cv6r08k47f";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = with llvmPackages; [ clang-unwrapped llvm rapidjson ];
+
+ cmakeFlags = [ "-DCCLS_VERSION=${version}" ];
+
+ preConfigure = ''
+ cmakeFlagsArray+=(-DCMAKE_CXX_FLAGS="-fvisibility=hidden -fno-rtti")
+ '';
+
+ shell = runtimeShell;
+ postFixup = ''
+ # We need to tell ccls where to find the standard library headers.
+
+ standard_library_includes="\\\"-isystem\\\", \\\"${stdenv.lib.getDev stdenv.cc.libc}/include\\\""
+ standard_library_includes+=", \\\"-isystem\\\", \\\"${llvmPackages.libcxx}/include/c++/v1\\\""
+ export standard_library_includes
+
+ wrapped=".ccls-wrapped"
+ export wrapped
+
+ mv $out/bin/ccls $out/bin/$wrapped
+ substituteAll ${./wrapper} $out/bin/ccls
+ chmod --reference=$out/bin/$wrapped $out/bin/ccls
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A c/c++ language server powered by clang";
+ homepage = "https://github.com/MaskRay/ccls";
+ license = licenses.asl20;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ mic92 tobim ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/wrapper b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
new file mode 100644
index 000000000000..155e6d4f6474
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ccls/wrapper
@@ -0,0 +1,12 @@
+#! @shell@ -e
+
+initString="--init={\"clang\":{\"extraArgs\": [@standard_library_includes@"
+
+if [ "${NIX_CFLAGS_COMPILE}" != "" ]; then
+ read -a cflags_array <<< ${NIX_CFLAGS_COMPILE}
+ initString+=$(printf ', \"%s\"' "${cflags_array[@]}")
+fi
+
+initString+="]}}"
+
+exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cflow/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cflow/default.nix
new file mode 100644
index 000000000000..1215c29c4776
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cflow/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, gettext, emacs }:
+
+stdenv.mkDerivation rec {
+ name = "cflow-1.6";
+
+ src = fetchurl {
+ url = "mirror://gnu/cflow/${name}.tar.bz2";
+ sha256 = "1mzd3yf0dfv8h2av5vsxxlhpk21nw064h91b2kgfrdz92r0pnj1l";
+ };
+
+ patchPhase = ''
+ substituteInPlace "src/cflow.h" \
+ --replace "/usr/bin/cpp" \
+ "$(cat ${stdenv.cc}/nix-support/orig-cc)/bin/cpp"
+ '';
+
+ buildInputs = [ gettext ] ++
+ # We don't have Emacs/GTK/etc. on {Dar,Cyg}win.
+ stdenv.lib.optional
+ (! (stdenv.lib.lists.any (x: stdenv.hostPlatform.system == x)
+ [ "i686-cygwin" ]))
+ emacs;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Tool to analyze the control flow of C programs";
+
+ longDescription = ''
+ GNU cflow analyzes a collection of C source files and prints a
+ graph, charting control flow within the program.
+
+ GNU cflow is able to produce both direct and inverted flowgraphs
+ for C sources. Optionally a cross-reference listing can be
+ generated. Two output formats are implemented: POSIX and GNU
+ (extended).
+
+ The package also provides Emacs major mode for examining the
+ produced flowcharts in Emacs.
+ '';
+
+ license = licenses.gpl3Plus;
+
+ homepage = "https://www.gnu.org/software/cflow/";
+
+ maintainers = [ maintainers.vrthra ];
+
+ /* On Darwin, build fails with:
+
+ Undefined symbols:
+ "_argp_program_version", referenced from:
+ _argp_program_version$non_lazy_ptr in libcflow.a(argp-parse.o)
+ ld: symbol(s) not found
+ */
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix
new file mode 100644
index 000000000000..a863cec1d4c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cgdb/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, ncurses, readline, flex, texinfo }:
+
+stdenv.mkDerivation rec {
+ pname = "cgdb";
+ version = "0.7.1";
+
+ src = fetchurl {
+ url = "https://cgdb.me/files/${pname}-${version}.tar.gz";
+ sha256 = "1671gpz5gx5j0zga8xy2x7h33vqh3nij93lbb6dbb366ivjknwmv";
+ };
+
+ buildInputs = [ ncurses readline flex texinfo ];
+
+ meta = with stdenv.lib; {
+ description = "A curses interface to gdb";
+
+ homepage = "https://cgdb.github.io/";
+
+ repositories.git = "git://github.com/cgdb/cgdb.git";
+
+ license = licenses.gpl2Plus;
+
+ platforms = with platforms; linux ++ cygwin;
+ maintainers = with maintainers; [ vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix
new file mode 100644
index 000000000000..86ac37ee4913
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/checkbashisms/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, perl }:
+stdenv.mkDerivation rec {
+ version = "2.0.0.2";
+ pname = "checkbashisms";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/checkbaskisms/${version}/checkbashisms";
+ sha256 = "1vm0yykkg58ja9ianfpm3mgrpah109gj33b41kl0jmmm11zip9jd";
+ };
+
+ buildInputs = [ perl ];
+
+ # The link returns directly the script. No need for unpacking
+ dontUnpack = true;
+
+ installPhase = ''
+ install -D -m755 $src $out/bin/checkbashisms
+ '';
+
+ meta = {
+ homepage = "https://sourceforge.net/projects/checkbaskisms/";
+ description = "Check shell scripts for non-portable syntax";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix
new file mode 100644
index 000000000000..7e08157d7bd4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chrpath/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "chrpath-0.16";
+
+ src = fetchurl {
+ url = "https://alioth-archive.debian.org/releases/chrpath/chrpath/0.16/chrpath-0.16.tar.gz";
+ sha256 = "0yvfq891mcdkf8g18gjjkn2m5rvs8z4z4cl1vwdhx6f2p9a4q3dv";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Command line tool to adjust the RPATH or RUNPATH of ELF binaries";
+ longDescription = ''
+ chrpath changes, lists or removes the rpath or runpath setting in a
+ binary. The rpath, or runpath if it is present, is where the runtime
+ linker should look for the libraries needed for a program.
+ '';
+ homepage = "https://tracker.debian.org/pkg/chrpath";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby-fish/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby-fish/default.nix
new file mode 100644
index 000000000000..6268c740e212
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby-fish/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, fetchFromGitHub, chruby }:
+
+stdenv.mkDerivation rec {
+ pname = "chruby-fish";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "JeanMertz";
+ repo = "chruby-fish";
+ rev = "v${version}";
+ sha256 = "15q0ywsn9pcypbpvlq0wb41x4igxm9bsvhg9a05dqw1n437qjhyb";
+ };
+
+ postInstall = ''
+ sed -i -e '1iset CHRUBY_ROOT ${chruby}' $out/share/chruby/auto.fish
+ sed -i -e '1iset CHRUBY_ROOT ${chruby}' $out/share/chruby/chruby.fish
+ '';
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "Thin wrapper around chruby to make it work with the Fish shell";
+ homepage = "https://github.com/JeanMertz/chruby-fish";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.all;
+ maintainers = [ lib.maintainers.cohei ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/default.nix
new file mode 100644
index 000000000000..bcc0687f55b6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, runCommand, rubies ? null }:
+
+let
+ rubiesEnv = runCommand "chruby-env" { preferLocalBuild = true; } ''
+ mkdir $out
+ ${lib.concatStrings
+ (lib.mapAttrsToList (name: path: "ln -s ${path} $out/${name}\n") rubies)}
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "chruby";
+
+ version = "0.3.9";
+
+ src = fetchFromGitHub {
+ owner = "postmodern";
+ repo = "chruby";
+ rev = "v${version}";
+ sha256 = "1894g6fymr8kra9vwhbmnrcr58l022mcd7g9ans4zd3izla2j3gx";
+ };
+
+ phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
+
+ patches = lib.optionalString (rubies != null) [
+ ./env.patch
+ ];
+
+ postPatch = lib.optionalString (rubies != null) ''
+ substituteInPlace share/chruby/chruby.sh --replace "@rubiesEnv@" ${rubiesEnv}
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp -r bin $out
+ cp -r share $out
+ '';
+
+ meta = with lib; {
+ description = "Changes the current Ruby";
+ homepage = "https://github.com/postmodern/chruby";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ cstrahan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/env.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/env.patch
new file mode 100644
index 000000000000..6a4ef8b73497
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/chruby/env.patch
@@ -0,0 +1,12 @@
+diff --git a/share/chruby/chruby.sh b/share/chruby/chruby.sh
+--- a/share/chruby/chruby.sh
++++ b/share/chruby/chruby.sh
+@@ -1,7 +1,7 @@
+ CHRUBY_VERSION="0.3.8"
+ RUBIES=()
+
+-for dir in "$PREFIX/opt/rubies" "$HOME/.rubies"; do
++for dir in @rubiesEnv@; do
+ [[ -d "$dir" && -n "$(ls -A "$dir")" ]] && RUBIES+=("$dir"/*)
+ done
+ unset dir
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
new file mode 100644
index 000000000000..b434358e1d20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "circleci-cli";
+ version = "0.1.9454";
+
+ src = fetchFromGitHub {
+ owner = "CircleCI-Public";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ld7lb69wmhyrpqjaj1pddx93x529qk2fzyrwlipglwn3mbala5a";
+ };
+
+ vendorSha256 = "1zd95n9k2fags0qh3wvjinxv1ahygr958mmiax2kz117yipaz4rb";
+
+ doCheck = false;
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/CircleCI-Public/circleci-cli/version.Version=${version} -X github.com/CircleCI-Public/circleci-cli/version.Commit=${src.rev} -X github.com/CircleCI-Public/circleci-cli/version.packageManager=nix" ];
+
+ preBuild = ''
+ substituteInPlace data/data.go \
+ --replace 'packr.New("circleci-cli-box", "../_data")' 'packr.New("circleci-cli-box", "${placeholder "out"}/share/circleci-cli")'
+ '';
+
+ postInstall = ''
+ install -Dm644 -t $out/share/circleci-cli _data/data.yml
+ '';
+
+ meta = with stdenv.lib; {
+ # Box blurb edited from the AUR package circleci-cli
+ description = ''
+ Command to enable you to reproduce the CircleCI environment locally and
+ run jobs as if they were running on the hosted CirleCI application.
+ '';
+ maintainers = with maintainers; [ synthetica ];
+ license = licenses.mit;
+ homepage = "https://circleci.com/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.nix
new file mode 100644
index 000000000000..c245a32a06d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.nix
@@ -0,0 +1,38 @@
+{stdenv, fetchurl}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="cl-launch";
+ version="4.1.4.1";
+ name="${baseName}-${version}";
+ hash="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
+ url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.4.1.tar.gz";
+ sha256="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
+ };
+ buildInputs = [
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ src = fetchurl {
+ inherit (s) url sha256;
+ };
+
+ preConfigure = ''
+ export makeFlags="$makeFlags PREFIX='$out'"
+ mkdir -p "$out/bin"
+ '';
+
+ preBuild = ''
+ sed -e 's/\t\t@/\t\t/g' -i Makefile
+ '';
+
+ meta = {
+ inherit (s) version;
+ description = ''Common Lisp launcher script'';
+ license = stdenv.lib.licenses.llgpl21 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.upstream b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.upstream
new file mode 100644
index 000000000000..ff7ee9446d28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cl-launch/default.upstream
@@ -0,0 +1,2 @@
+url http://common-lisp.net/project/xcvb/cl-launch/
+version_link '.-[0-9].*[0-9][.]tar[.][a-z0-9]*$'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cli11/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
new file mode 100644
index 000000000000..0d058ef1f881
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
@@ -0,0 +1,43 @@
+{
+ stdenv,
+ fetchFromGitHub,
+ cmake,
+ gtest,
+ python,
+ boost
+}:
+
+stdenv.mkDerivation rec {
+ pname = "cli11";
+ version = "1.9.1";
+
+ src = fetchFromGitHub {
+ owner = "CLIUtils";
+ repo = "CLI11";
+ rev = "v${version}";
+ sha256 = "0hbch0vk8irgmiaxnfqlqys65v1770rxxdfn3d23m2vqyjh0j9l6";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ checkInputs = [ boost python ];
+
+ doCheck = true;
+
+ preConfigure = ''
+ rm -rfv extern/googletest
+ ln -sfv ${gtest.src} extern/googletest
+ sed -i '/TrueFalseTest/d' tests/CMakeLists.txt
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "CLI11 is a command line parser for C++11";
+ homepage = "https://github.com/CLIUtils/CLI11";
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ nand0p ];
+ license = licenses.unfreeRedistributable;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
new file mode 100644
index 000000000000..65f12bfbb098
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "clojure-lsp";
+ version = "20200828T065654";
+
+ src = fetchurl {
+ url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
+ sha256 = "1399xjcnnb7vazy1jv3h7lnh1dyn81yk2bwi6ai991a9fsinjnf2";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ install -Dm755 $src $out/bin/clojure-lsp
+ sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/clojure-lsp
+ '';
+
+ # verify shebang patch
+ installCheckPhase = "PATH= clojure-lsp --version";
+
+ meta = with stdenv.lib; {
+ description = "Language Server Protocol (LSP) for Clojure";
+ homepage = "https://github.com/snoe/clojure-lsp";
+ license = licenses.mit;
+ maintainers = [ maintainers.ericdallo ];
+ platforms = jre.meta.platforms;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix
new file mode 100644
index 000000000000..f8cad56f0995
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/coccinelle/default.nix
@@ -0,0 +1,57 @@
+{ fetchurl, stdenv, python, ncurses, ocamlPackages, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "coccinelle";
+ version = "1.0.6";
+
+ src = fetchurl {
+ url = "http://coccinelle.lip6.fr/distrib/${pname}-${version}.tgz";
+ sha256 = "02g9hmwkvfl838zz690yra5jzrqjg6y6ffxkrfcsx790bhkfsll4";
+ };
+
+ buildInputs = with ocamlPackages; [
+ ocaml findlib menhir
+ ocaml_pcre pycaml
+ python ncurses pkgconfig
+ ];
+
+ doCheck = !stdenv.isDarwin;
+
+ # The build system builds two versions of spgen:
+ # 'spgen' with ocamlc -custom (bytecode specially linked)
+ # and 'spgen.opt' using ocamlopt.
+ # I'm not sure of the intentions here, but the way
+ # the 'spgen' binary is produced results in an
+ # invalid/incorrect interpreter path (/lib/ld-linux*).
+ # We could patch it, but without knowing why it's
+ # finding the wrong path it seems safer to use
+ # the .opt version that is built correctly.
+ # All that said, our fix here is simple: remove 'spgen'.
+ # The bin/spgen entrypoint is really a bash script
+ # and will use spgen.opt if 'spgen' doesn't exist.
+ postInstall = ''
+ rm $out/lib/coccinelle/spgen/spgen
+ '';
+
+ meta = {
+ description = "Program to apply semantic patches to C code";
+ longDescription = ''
+ Coccinelle is a program matching and transformation engine which
+ provides the language SmPL (Semantic Patch Language) for
+ specifying desired matches and transformations in C code.
+ Coccinelle was initially targeted towards performing collateral
+ evolutions in Linux. Such evolutions comprise the changes that
+ are needed in client code in response to evolutions in library
+ APIs, and may include modifications such as renaming a function,
+ adding a function argument whose value is somehow
+ context-dependent, and reorganizing a data structure. Beyond
+ collateral evolutions, Coccinelle is successfully used (by us
+ and others) for finding and fixing bugs in systems code.
+ '';
+
+ homepage = "http://coccinelle.lip6.fr/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/complexity/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/complexity/default.nix
new file mode 100644
index 000000000000..71ed762df040
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/complexity/default.nix
@@ -0,0 +1,32 @@
+{ fetchurl, stdenv, autogen }:
+
+stdenv.mkDerivation rec {
+ pname = "complexity";
+ version = "1.10";
+
+ src = fetchurl {
+ url = "mirror://gnu/complexity/${pname}-${version}.tar.gz";
+ sha256 = "1vfns9xm7w0wrz12a3w15slrqnrfh6qxk15nv7qkj3irll3ff522";
+ };
+
+ buildInputs = [ autogen ];
+
+ doCheck = true;
+
+ meta = {
+ description = "C code complexity measurement tool";
+
+ longDescription =
+ '' GNU Complexity is a tool designed for analyzing the complexity of C
+ program functions. It is very similar to the McCabe scoring, but
+ addresses several issues not considered in that scoring scheme.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ homepage = "https://www.gnu.org/software/complexity/";
+
+ platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cppi/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cppi/default.nix
new file mode 100644
index 000000000000..8de7391b9ec6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cppi/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+ name = "cppi-1.18";
+
+ src = fetchurl {
+ url = "mirror://gnu/cppi/${name}.tar.xz";
+ sha256 = "1jk42cjaggk71rimjnx3qpmb6hivps0917vl3z7wbxk3i2whb98j";
+ };
+
+ doCheck = true;
+
+ meta = {
+ homepage = "https://savannah.gnu.org/projects/cppi/";
+
+ description = "A C preprocessor directive indenter";
+
+ longDescription =
+ '' GNU cppi indents C preprocessor directives to reflect their nesting
+ and ensure that there is exactly one space character between each #if,
+ #elif, #define directive and the following token. The number of
+ spaces between the `#' and the following directive must correspond
+ to the level of nesting of that directive.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch
new file mode 100644
index 000000000000..3743fef977b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch
@@ -0,0 +1,11 @@
+diff -Naur cproto-4.6-old/cproto.h cproto-4.6/cproto.h
+--- cproto-4.6-old/cproto.h 1998-01-18 19:49:16.000000000 -0500
++++ cproto-4.6/cproto.h 2004-03-14 00:02:32.148070032 -0500
+@@ -117,6 +117,7 @@
+ Declarator *declarator;
+ DeclaratorList decl_list;
+ } YYSTYPE;
++#define YYSTYPE_IS_DECLARED 1
+
+ /* Prototype styles */
+ #if OPT_LINTLIBRARY
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
new file mode 100644
index 000000000000..ef0e2cab7771
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, flex, bison }:
+
+stdenv.mkDerivation rec {
+ pname = "cproto";
+ version = "4.7p";
+
+ src = fetchurl {
+ urls = [
+ "mirror://debian/pool/main/c/cproto/cproto_${version}.orig.tar.gz"
+ # No version listings and apparently no versioned tarball over http(s).
+ "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
+ ];
+ sha256 = "0vm1784yw8gax1r7bzgq0chjgfzwxvmkala2awghmd3zyi7k60nj";
+ };
+
+ # patch made by Joe Khoobyar copied from gentoo bugs
+ patches = [ ./cproto.patch ];
+
+ nativeBuildInputs = [ flex bison ];
+
+ doCheck = true;
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ [ "$("$out/bin/cproto" -V 2>&1)" = '${version}' ]
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool to generate C function prototypes from C source code";
+ homepage = "https://invisible-island.net/cproto/";
+ license = licenses.publicDomain;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/creduce/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
new file mode 100644
index 000000000000..943adf0e469b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/creduce/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchurl, cmake, makeWrapper
+, llvm, clang-unwrapped
+, flex
+, zlib
+, perlPackages
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+ pname = "creduce";
+ version = "2.9.0";
+
+ src = fetchurl {
+ url = "https://embed.cs.utah.edu/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "1b833z0g1hich68kzbkpfc26xb8w2phfl5savy8c6ir9ihwy1a8w";
+ };
+
+ nativeBuildInputs = [ cmake makeWrapper ];
+ buildInputs = [
+ # Ensure stdenv's CC is on PATH before clang-unwrapped
+ stdenv.cc
+ # Actual deps:
+ llvm clang-unwrapped
+ flex zlib
+ ] ++ (with perlPackages; [ perl ExporterLite FileWhich GetoptTabular RegexpCommon TermReadKey ]);
+
+ # On Linux, c-reduce's preferred way to reason about
+ # the cpu architecture/topology is to use 'lscpu',
+ # so let's make sure it knows where to find it:
+ postPatch = stdenv.lib.optionalString stdenv.isLinux ''
+ substituteInPlace creduce/creduce_utils.pm --replace \
+ lscpu ${utillinux}/bin/lscpu
+ '';
+
+
+ enableParallelBuilding = true;
+
+ postInstall = ''
+ wrapProgram $out/bin/creduce --prefix PERL5LIB : "$PERL5LIB"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A C program reducer";
+ homepage = "https://embed.cs.utah.edu/creduce";
+ # Officially, the license is: https://github.com/csmith-project/creduce/blob/master/COPYING
+ license = licenses.ncsa;
+ longDescription = ''
+ C-Reduce is a tool that takes a large C or C++ program that has a
+ property of interest (such as triggering a compiler bug) and
+ automatically produces a much smaller C/C++ program that has the same
+ property. It is intended for use by people who discover and report
+ bugs in compilers and other tools that process C/C++ code.
+ '';
+ maintainers = [ maintainers.dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cscope/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cscope/default.nix
new file mode 100644
index 000000000000..31d4e83663be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cscope/default.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, ncurses
+, emacsSupport ? true, emacs
+}:
+
+stdenv.mkDerivation rec {
+ name = "cscope-15.9";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/cscope/${name}.tar.gz";
+ sha256 = "0ngiv4aj3rr35k3q3wjx0y19gh7i1ydqa0cqip6sjwd8fph5ll65";
+ };
+
+ configureFlags = [ "--with-ncurses=${ncurses.dev}" ];
+
+ buildInputs = [ ncurses ];
+ nativeBuildInputs = stdenv.lib.optional emacsSupport emacs;
+
+ postInstall = stdenv.lib.optionalString emacsSupport ''
+ cd "contrib/xcscope"
+
+ sed -i "cscope-indexer" \
+ -"es|^PATH=.*$|PATH=\"$out/bin:\$PATH\"|g"
+ sed -i "xcscope.el" \
+ -"es|\"cscope-indexer\"|\"$out/libexec/cscope/cscope-indexer\"|g";
+
+ mkdir -p "$out/libexec/cscope"
+ cp "cscope-indexer" "$out/libexec/cscope"
+
+ mkdir -p "$out/share/emacs/site-lisp"
+ emacs --batch --eval '(byte-compile-file "xcscope.el")'
+ cp xcscope.el{,c} "$out/share/emacs/site-lisp"
+ '';
+
+ meta = {
+ description = "A developer's tool for browsing source code";
+
+ longDescription = ''
+ Cscope is a developer's tool for browsing source code. It has
+ an impeccable Unix pedigree, having been originally developed at
+ Bell Labs back in the days of the PDP-11. Cscope was part of
+ the official AT&T Unix distribution for many years, and has been
+ used to manage projects involving 20 million lines of code!
+ '';
+
+ license = "BSD-style";
+
+ homepage = "http://cscope.sourceforge.net/";
+
+ maintainers = with stdenv.lib.maintainers; [viric];
+
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/csmith/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/csmith/default.nix
new file mode 100644
index 000000000000..253dd4065e40
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/csmith/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, m4, makeWrapper, libbsd, perlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "csmith";
+ version = "2.3.0";
+
+ src = fetchurl {
+ url = "https://embed.cs.utah.edu/csmith/${pname}-${version}.tar.gz";
+ sha256 = "1mb5zgixsyf86slggs756k8a5ddmj980md3ic9sa1y75xl5cqizj";
+ };
+
+ nativeBuildInputs = [ m4 makeWrapper ];
+ buildInputs = [ libbsd ] ++ (with perlPackages; [ perl SysCPU ]);
+
+ postInstall = ''
+ substituteInPlace $out/bin/compiler_test.pl \
+ --replace '$CSMITH_HOME/runtime' $out/include/${pname}-${version} \
+ --replace ' ''${CSMITH_HOME}/runtime' " $out/include/${pname}-${version}" \
+ --replace '$CSMITH_HOME/src/csmith' $out/bin/csmith
+
+ substituteInPlace $out/bin/launchn.pl \
+ --replace '../compiler_test.pl' $out/bin/compiler_test.pl \
+ --replace '../$CONFIG_FILE' '$CONFIG_FILE'
+
+ wrapProgram $out/bin/launchn.pl \
+ --prefix PERL5LIB : "$PERL5LIB"
+
+ mkdir -p $out/share/csmith
+ mv $out/bin/compiler_test.in $out/share/csmith/
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "A random generator of C programs";
+ homepage = "https://embed.cs.utah.edu/csmith";
+ # Officially, the license is this: https://github.com/csmith-project/csmith/blob/master/COPYING
+ license = licenses.bsd2;
+ longDescription = ''
+ Csmith is a tool that can generate random C programs that statically and
+ dynamically conform to the C99 standard. It is useful for stress-testing
+ compilers, static analyzers, and other tools that process C code.
+ Csmith has found bugs in every tool that it has tested, and has been used
+ to find and report more than 400 previously unknown compiler bugs.
+ '';
+ maintainers = [ maintainers.dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
new file mode 100644
index 000000000000..3adca34a5bbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchsvn, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ name = "ctags-${revision}";
+ revision = "816";
+
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/ctags/code/trunk";
+ rev = revision;
+ sha256 = "0jmbkrmscbl64j71qffcc39x005jrmphx8kirs1g2ws44wil39hf";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ # don't use $T(E)MP which is set to the build directory
+ configureFlags= [ "--enable-tmpdir=/tmp" ];
+
+ meta = with stdenv.lib; {
+ description = "A tool for fast source code browsing (exuberant ctags)";
+ longDescription = ''
+ Ctags generates an index (or tag) file of language objects found
+ in source files that allows these items to be quickly and easily
+ located by a text editor or other utility. A tag signifies a
+ language object for which an index entry is available (or,
+ alternatively, the index entry created for that object). Many
+ programming languages are supported.
+ '';
+ homepage = "http://ctags.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+
+ # So that Exuberant ctags is preferred over emacs's ctags
+ priority = 1;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/wrapped.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/wrapped.nix
new file mode 100644
index 000000000000..08f8049aa8a1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ctags/wrapped.nix
@@ -0,0 +1,78 @@
+{ pkgs, ctags }:
+
+with pkgs.stdenv.lib;
+
+# define some ctags wrappers adding support for some not that common languages
+# customization:
+# a) add stuff here
+# b) override asLang, phpLang, ... using packageOverrides
+# c) use ctagsWrapped.override {args = [ your liste ];}
+
+# install using -iA ctagsWrapped.ctagsWrapped
+
+{
+
+ # the derivation. use language extensions specified by args
+ ctagsWrapped = makeOverridable ( {args, name} : pkgs.writeScriptBin name ''
+ #!${pkgs.runtimeShell}
+ exec ${pkgs.ctags}/bin/ctags ${concatStringsSep " " (map escapeShellArg args)} "$@"
+ '') {
+ args = let x = pkgs.ctagsWrapped; in concatLists [
+ x.defaultArgs x.phpLang x.jsLang x.nixLang x.asLang x.rubyLang
+ ];
+ name = "${ctags.name}-wrapped";
+ };
+
+ ### language arguments
+
+ # don't scan version control directories
+ defaultArgs = [
+ "--exclude=.svn"
+ "--exclude=.hg"
+ "--exclude=.git"
+ "--exclude=_darcs"
+ "--sort=yes"
+ ];
+
+ # actionscript
+ asLang = [
+ "--langdef=ActionScript"
+ "--langmap=ActionScript:.as"
+ "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
+ "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
+ "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
+ "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
+ "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
+ ];
+
+ # PHP
+ phpLang = [
+ "--langmap=PHP:.php"
+ "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
+ "--regex-PHP=/interface ([^ ]*)/\\1/i/"
+ "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
+ ];
+
+ # Javascript: also find unnamed functions and funtions beeing passed within a dict.
+ # the dict properties is used to implement duck typing in frameworks
+ # var foo = function () { ... }
+ # {
+ # a : function () {}
+ # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
+ jsLang = [
+ "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/"
+ ];
+
+ # find foo in "foo =", don't think we can do a lot better
+ nixLang = [
+ "--langdef=NIX"
+ "--langmap=NIX:.nix"
+ "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
+ ];
+
+ rubyLang = [
+ "--langmap=RUBY:.rb"
+ "--regex-RUBY=/class ([^ ]*)/\\1/c/"
+ "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix
new file mode 100644
index 000000000000..0b89156d71aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/cwebbin/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchurl, tie }:
+
+stdenv.mkDerivation rec {
+ pname = "cwebbin";
+ version = "22p";
+
+ src = fetchFromGitHub {
+ owner = "ascherer";
+ repo = "cwebbin";
+ rev = "2016-05-20-22p";
+ sha256 = "0zf93016hm9i74i2v384rwzcw16y3hg5vc2mibzkx1rzvqa50yfr";
+ };
+
+ cweb = fetchurl {
+ url = "https://www.ctan.org/tex-archive/web/c_cpp/cweb/cweb-3.64ah.tgz";
+ sha256 = "1hdzxfzaibnjxjzgp6d2zay8nsarnfy9hfq55hz1bxzzl23n35aj";
+ };
+
+ buildInputs = [ tie ];
+
+ makeFlags = [
+ "MACROSDIR=$(out)/share/texmf/tex/generic/cweb"
+ "CWEBINPUTS=$(out)/lib/cweb"
+ "DESTDIR=$(out)/bin/"
+ "MANDIR=$(out)/share/man/man1"
+ "EMACSDIR=$(out)/share/emacs/site-lisp"
+ "CP=cp"
+ "RM=rm"
+ "PDFTEX=echo"
+ "CC=c++"
+ ];
+
+ buildPhase = ''
+ zcat ${cweb} | tar -xvpf -
+ make -f Makefile.unix boot $makeFlags
+ make -f Makefile.unix cautiously $makeFlags
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/man/man1 $out/share/texmf/tex/generic $out/share/emacs $out/lib
+ make -f Makefile.unix install $makeFlags
+ '';
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "Literate Programming in C/C++";
+ platforms = with platforms; unix;
+ maintainers = with maintainers; [ vrthra ];
+ license = licenses.abstyles;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
new file mode 100644
index 000000000000..53ba94c7e81e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/d-feet/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, pkgconfig
+, fetchurl
+, meson
+, ninja
+, glib
+, gtk3
+, python3
+, wrapGAppsHook
+, gnome3
+, libwnck3
+, gobject-introspection
+, gettext
+, itstool
+}:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "d-feet";
+ version = "0.3.15";
+
+ format = "other";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/d-feet/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1cgxgpj546jgpyns6z9nkm5k48lid8s36mvzj8ydkjqws2d19zqz";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ gobject-introspection
+ itstool
+ meson
+ ninja
+ pkgconfig
+ python3
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ gnome3.adwaita-icon-theme
+ gtk3
+ libwnck3
+ ];
+
+ propagatedBuildInputs = with python3.pkgs; [
+ pygobject3
+ ];
+
+ mesonFlags = [
+ "-Dtests=false" # needs dbus
+ ];
+
+ # Temporary fix
+ # See https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ postPatch = ''
+ chmod +x meson_post_install.py
+ patchShebangs meson_post_install.py
+ '';
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ attrPath = "dfeet";
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "D-Feet is an easy to use D-Bus debugger";
+ longDescription = ''
+ D-Feet can be used to inspect D-Bus interfaces of running programs
+ and invoke methods on those interfaces.
+ '';
+ homepage = "https://wiki.gnome.org/Apps/DFeet";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ ktosiek ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/default.nix
new file mode 100644
index 000000000000..49fb1efbd4a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchgit, autoconf, popt, zlib, rpcsvc-proto, libtirpc }:
+
+stdenv.mkDerivation {
+ name = "dbench-2013-01-01";
+
+ src = fetchgit {
+ url = "git://git.samba.org/sahlberg/dbench.git";
+ rev = "65b19870ed8d25bff14cafa1c30beb33f1fb6597";
+ sha256 = "16lcbwmmx8z5i73k3dnf54yffrpx7ql3y9k3cpkss9dcyxb1p83i";
+ };
+
+ nativeBuildInputs = [ autoconf rpcsvc-proto ];
+ buildInputs = [ popt zlib libtirpc ];
+ NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+ NIX_LDFLAGS = [ "-ltirpc" ];
+
+ patches = [
+ # patch has been also sent upstream and might be included in future versions
+ ./fix-missing-stdint.patch
+ ];
+
+ preConfigure = ''
+ ./autogen.sh
+ configureFlagsArray+=("--datadir=$out/share/dbench")
+ '';
+
+ postInstall = ''
+ cp -R loadfiles/* $out/share/dbench/doc/dbench/loadfiles
+
+ # dbench looks here for the file
+ ln -s doc/dbench/loadfiles/client.txt $out/share/dbench/client.txt
+
+ # backwards compatible to older nixpkgs packaging introduced by
+ # 3f27be8e5d5861cd4b9487d6c5212d88bf24316d
+ ln -s dbench/doc/dbench/loadfiles $out/share/loadfiles
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Filesystem benchmark tool based on load patterns";
+ homepage = "https://dbench.samba.org/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/fix-missing-stdint.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/fix-missing-stdint.patch
new file mode 100644
index 000000000000..96cb28e9e55a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dbench/fix-missing-stdint.patch
@@ -0,0 +1,10 @@
+--- dbench-65b1987.org/libnfs.c 2017-11-08 12:25:39.652147989 +0000
++++ dbench-65b1987/libnfs.c 2017-11-08 12:26:20.269897054 +0000
+@@ -23,6 +23,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#include <stdint.h>
+
+ #define discard_const(ptr) ((void *)((intptr_t)(ptr)))
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/default.nix
new file mode 100644
index 000000000000..174168b7db7d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/default.nix
@@ -0,0 +1,22 @@
+{stdenv, fetchurl, motif, ncurses, libX11, libXt}:
+
+stdenv.mkDerivation rec {
+ name = "ddd-3.3.12";
+ src = fetchurl {
+ url = "mirror://gnu/ddd/${name}.tar.gz";
+ sha256 = "0p5nx387857w3v2jbgvps2p6mlm0chajcdw5sfrddcglsxkwvmis";
+ };
+ buildInputs = [motif ncurses libX11 libXt];
+ configureFlags = [ "--with-x" ];
+
+ patches = [ ./gcc44.patch ];
+
+ NIX_CFLAGS_COMPILE = "-fpermissive";
+
+ meta = {
+ homepage = "https://www.gnu.org/software/ddd";
+ description = "Graphical front-end for command-line debuggers";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/gcc44.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/gcc44.patch
new file mode 100644
index 000000000000..c4e4004b12e0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ddd/gcc44.patch
@@ -0,0 +1,11 @@
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504868
+--- a/ddd/strclass.C~ 2008-11-07 17:57:13.000000000 +0000
++++ b/ddd/strclass.C 2008-11-07 17:57:27.000000000 +0000
+@@ -39,6 +39,7 @@
+ #include <ctype.h>
+ #include <limits.h>
+ #include <new>
++#include <cstdio>
+ #include <stdlib.h>
+
+ void string::error(const char* msg) const
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix
new file mode 100644
index 000000000000..73e2ab8ef92d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dejagnu/default.nix
@@ -0,0 +1,53 @@
+{ fetchurl, stdenv, expect, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "dejagnu-1.6.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/dejagnu/${name}.tar.gz";
+ sha256 = "0qfj2wd4qk1yn9yzam6g8nmyxfazcc0knjyyibycb2ainkhp21hd";
+ };
+
+ buildInputs = [ expect makeWrapper ];
+
+ doCheck = true;
+
+ # Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of
+ # the build daemon when building in a chroot. See
+ # <https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01056.html> for
+ # details.
+
+ # The test-suite needs to have a non-empty stdin:
+ # https://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html
+ checkPhase = ''
+ # Provide `runtest' with a log name, otherwise it tries to run
+ # `whoami', which fails when in a chroot.
+ LOGNAME="nix-build-daemon" make check < /dev/zero
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/runtest" \
+ --prefix PATH ":" "${expect}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Framework for testing other programs";
+
+ longDescription = ''
+ DejaGnu is a framework for testing other programs. Its purpose
+ is to provide a single front end for all tests. Think of it as a
+ custom library of Tcl procedures crafted to support writing a
+ test harness. A test harness is the testing infrastructure that
+ is created to support a specific program or tool. Each program
+ can have multiple testsuites, all supported by a single test
+ harness. DejaGnu is written in Expect, which in turn uses Tcl --
+ Tool command language.
+ '';
+
+ homepage = "https://www.gnu.org/software/dejagnu/";
+ license = licenses.gpl2Plus;
+
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix
new file mode 100644
index 000000000000..1aaf113d0b95
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-programmer/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, libusb-compat-0_1 }:
+let
+ version = "0.7.2";
+in
+stdenv.mkDerivation rec {
+ pname = "dfu-programmer";
+ inherit version;
+
+ buildInputs = [ libusb-compat-0_1 ];
+
+ src = fetchurl {
+ url = "mirror://sourceforge/dfu-programmer/${pname}-${version}.tar.gz";
+ sha256 = "15gr99y1z9vbvhrkd25zqhnzhg6zjmaam3vfjzf2mazd39mx7d0x";
+ };
+
+ configureFlags = [ "--disable-libusb_1_0" ];
+
+ meta = with stdenv.lib; {
+ license = licenses.gpl2;
+ description = "A Device Firmware Update based USB programmer for Atmel chips with a USB bootloader";
+ homepage = "http://dfu-programmer.sourceforge.net/";
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-util/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-util/default.nix
new file mode 100644
index 000000000000..ecd40f20fd4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dfu-util/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, pkgconfig, libusb1 }:
+
+stdenv.mkDerivation rec {
+ pname = "dfu-util";
+ version = "0.9";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1 ];
+
+ src = fetchurl {
+ url = "http://dfu-util.sourceforge.net/releases/${pname}-${version}.tar.gz";
+ sha256 = "0czq73m92ngf30asdzrfkzraag95hlrr74imbanqq25kdim8qhin";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Device firmware update (DFU) USB programmer";
+ longDescription = ''
+ dfu-util is a program that implements the host (PC) side of the USB
+ DFU 1.0 and 1.1 (Universal Serial Bus Device Firmware Upgrade) protocol.
+
+ DFU is intended to download and upload firmware to devices connected over
+ USB. It ranges from small devices like micro-controller boards up to mobile
+ phones. With dfu-util you are able to download firmware to your device or
+ upload firmware from it.
+ '';
+ homepage = "http://dfu-util.sourceforge.net";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.fpletz ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dialog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dialog/default.nix
new file mode 100644
index 000000000000..ead105779788
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/dialog/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, ncurses
+, withLibrary ? false, libtool
+, unicodeSupport ? true
+, enableShared ? !stdenv.isDarwin
+}:
+
+assert withLibrary -> libtool != null;
+assert unicodeSupport -> ncurses.unicode && ncurses != null;
+
+stdenv.mkDerivation rec {
+ pname = "dialog";
+ version = "1.3-20190211";
+
+ src = fetchurl {
+ urls = [
+ "ftp://ftp.invisible-island.net/dialog/${pname}-${version}.tgz"
+ "https://invisible-mirror.net/archives/dialog/${pname}-${version}.tgz"
+ ];
+ sha256 = "1lx0bvradzx1zl7znlrsnyljcs596r7wamkhyq37ikbxsy4y5h29";
+ };
+
+ buildInputs = [ ncurses ];
+
+ configureFlags = [
+ "--disable-rpath-hacks"
+ (stdenv.lib.withFeature withLibrary "libtool")
+ "--with-ncurses${stdenv.lib.optionalString unicodeSupport "w"}"
+ "--with-libtool-opts=${stdenv.lib.optionalString enableShared "-shared"}"
+ ];
+
+ installTargets = [ "install${stdenv.lib.optionalString withLibrary "-full"}" ];
+
+ meta = {
+ homepage = "https://invisible-island.net/dialog/dialog.html";
+ description = "Display dialog boxes from shell";
+ license = stdenv.lib.licenses.lgpl21Plus;
+ maintainers = [ stdenv.lib.maintainers.spacefrogg ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/direvent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
new file mode 100644
index 000000000000..0ae1884646d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/direvent/default.nix
@@ -0,0 +1,21 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+ name = "direvent-${version}";
+ version = "5.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/direvent/${name}.tar.gz";
+ sha256 = "0m9vi01b1km0cpknflyzsjnknbava0s1n6393b2bpjwyvb6j5613";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Directory event monitoring daemon";
+ homepage = "https://www.gnu.org.ua/software/direvent/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ puffnfresh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
new file mode 100644
index 000000000000..3894ed58728d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/default.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchFromGitHub, popt, avahi, pkgconfig, python, gtk2, runCommand
+, gcc, autoconf, automake, which, procps, libiberty_static
+, runtimeShell
+, sysconfDir ? "" # set this parameter to override the default value $out/etc
+, static ? false
+}:
+
+let
+ name = "distcc";
+ version = "2016-02-24";
+ distcc = stdenv.mkDerivation {
+ name = "${name}-${version}";
+ src = fetchFromGitHub {
+ owner = "distcc";
+ repo = "distcc";
+ rev = "b2fa4e21b4029e13e2c33f7b03ca43346f2cecb8";
+ sha256 = "1vj31wcdas8wy52hy6749mlrca9v6ynycdiigx5ay8pnya9z73c6";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [popt avahi pkgconfig python gtk2 autoconf automake which procps libiberty_static];
+ preConfigure =
+ ''
+ export CPATH=$(ls -d ${gcc.cc}/lib/gcc/*/${gcc.cc.version}/plugin/include)
+
+ configureFlagsArray=( CFLAGS="-O2 -fno-strict-aliasing"
+ CXXFLAGS="-O2 -fno-strict-aliasing"
+ --mandir=$out/share/man
+ ${if sysconfDir == "" then "" else "--sysconfdir=${sysconfDir}"}
+ ${if static then "LDFLAGS=-static" else ""}
+ --with${if static == true || popt == null then "" else "out"}-included-popt
+ --with${if avahi != null then "" else "out"}-avahi
+ --with${if gtk2 != null then "" else "out"}-gtk
+ --without-gnome
+ --enable-rfc2553
+ --disable-Werror # a must on gcc 4.6
+ )
+ installFlags="sysconfdir=$out/etc";
+
+ ./autogen.sh
+ '';
+
+ # The test suite fails because it uses hard-coded paths, i.e. /usr/bin/gcc.
+ doCheck = false;
+
+ passthru = {
+ # A derivation that provides gcc and g++ commands, but that
+ # will end up calling distcc for the given cacheDir
+ #
+ # extraConfig is meant to be sh lines exporting environment
+ # variables like DISTCC_HOSTS, DISTCC_DIR, ...
+ links = extraConfig: (runCommand "distcc-links" { passthru.gcc = gcc.cc; }
+ ''
+ mkdir -p $out/bin
+ if [ -x "${gcc.cc}/bin/gcc" ]; then
+ cat > $out/bin/gcc << EOF
+ #!${runtimeShell}
+ ${extraConfig}
+ exec ${distcc}/bin/distcc gcc "\$@"
+ EOF
+ chmod +x $out/bin/gcc
+ fi
+ if [ -x "${gcc.cc}/bin/g++" ]; then
+ cat > $out/bin/g++ << EOF
+ #!${runtimeShell}
+ ${extraConfig}
+ exec ${distcc}/bin/distcc g++ "\$@"
+ EOF
+ chmod +x $out/bin/g++
+ fi
+ '');
+ };
+
+ meta = {
+ description = "A fast, free distributed C/C++ compiler";
+ homepage = "http://distcc.org";
+ license = "GPL";
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ anderspapitto ];
+ };
+ };
+in
+ distcc
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/masq.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/masq.nix
new file mode 100644
index 000000000000..f3bccde81606
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/distcc/masq.nix
@@ -0,0 +1,44 @@
+{ stdenv, gccRaw, binutils }:
+
+stdenv.mkDerivation {
+ name = "distcc-masq-${gccRaw.name}";
+
+ phases = [ "installPhase" ];
+ installPhase = ''
+ mkdir -p $out/bin
+
+ bin=${gccRaw}/bin
+
+ shopt -s nullglob
+ if [ -f $bin/gcc ]; then
+ ln -s $bin/gcc $out/bin
+ else
+ for a in $bin/*-gcc; do
+ ln -s $bin/*-gcc $out/bin/gcc
+ ln -s $bin/*-gcc $out/bin/cc
+ done
+ fi
+
+ if [ -f $bin/g++ ]; then
+ ln -s $bin/g++ $out/bin
+ else
+ for a in $bin/*-g++; do
+ ln -sf $bin/*-g++ $out/bin/g++
+ ln -sf $bin/*-g++ $out/bin/c++
+ done
+ fi
+
+ bbin=${binutils}/bin
+ if [ -f $bbin/as ]; then
+ ln -s $bbin/as $out/bin
+ else
+ for a in $bbin/*-as; do
+ ln -sf $bbin/*-as $out/bin/as
+ done
+ fi
+ '';
+
+ meta = {
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix
new file mode 100644
index 000000000000..3c6fa76616fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/doclifter/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, python}:
+
+stdenv.mkDerivation {
+ name = "doclifter-2.19";
+ src = fetchurl {
+ url = "http://www.catb.org/~esr/doclifter/doclifter-2.19.tar.gz";
+ sha256 = "1as6z7mdjrrkw2kism41q5ybvyzvwcmj9qzla2fz98v9f4jbj2s2";
+ };
+ buildInputs = [ python ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ preInstall = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man/man1
+ cp manlifter $out/bin
+ cp manlifter.1 $out/share/man/man1
+ '';
+
+ meta = {
+ description = "Lift documents in nroff markups to XML-DocBook";
+ homepage = "http://www.catb.org/esr/doclifter";
+ license = "BSD";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/drush/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/drush/default.nix
new file mode 100644
index 000000000000..d5c345d9d22b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/drush/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, php73, which, makeWrapper, bash, coreutils, ncurses }:
+
+stdenv.mkDerivation rec {
+ name = "drush-6.1.0";
+
+ meta = with stdenv.lib; {
+ description = "Command-line shell and Unix scripting interface for Drupal";
+ homepage = "https://github.com/drush-ops/drush";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ lovek323 ];
+ platforms = platforms.all;
+ };
+
+ src = fetchurl {
+ url = "https://github.com/drush-ops/drush/archive/6.1.0.tar.gz";
+ sha256 = "1jgnc4jjyapyn04iczvcz92ic0vq8d1w8xi55ismqyy5cxhqj6bp";
+ };
+
+ consoleTable = fetchurl {
+ url = "http://download.pear.php.net/package/Console_Table-1.1.3.tgz";
+ sha256 = "07gbjd7m1fj5dmavr0z20vkqwx1cz2522sj9022p257jifj1yl76";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ # install libraries
+ cd lib
+ tar -xf ${consoleTable}
+ cd ..
+
+ mkdir -p "$out"
+ cp -r . "$out/src"
+ mkdir "$out/bin"
+ wrapProgram "$out/src/drush" --prefix PATH : "${stdenv.lib.makeBinPath [ which php73 bash coreutils ncurses ]}"
+ ln -s "$out/src/drush" "$out/bin/drush"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix
new file mode 100644
index 000000000000..92d1a550ea80
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "easypdkprog";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "free-pdk";
+ repo = "easy-pdk-programmer-software";
+ rev = version;
+ sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f";
+ };
+
+ installPhase = ''
+ install -Dm755 -t $out/bin easypdkprog
+ '' + lib.optionalString stdenv.isLinux ''
+ install -Dm644 -t $out/etc/udev/rules.d Linux_udevrules/70-stm32vcp.rules
+ '';
+
+ meta = with lib; {
+ description = "Read, write and execute programs on PADAUK microcontroller";
+ homepage = "https://github.com/free-pdk/easy-pdk-programmer-software";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ david-sawatzke ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
new file mode 100644
index 000000000000..3975ad3511fb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "editorconfig-checker";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "editorconfig-checker";
+ repo = "editorconfig-checker";
+ rev = "${version}";
+ sha256 = "09v8gqwcaay3bqbidparmg20dy0mvlrzh34591hanbrx3cwhrz3f";
+ };
+
+ vendorSha256 = "132blcdw3lywxhqslkcpwwvkzl4cpbbkhb7ba8mrvfgl5kvfm1q0";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
+ postInstall = ''
+ installManPage docs/editorconfig-checker.1
+ '';
+
+ meta = with lib; {
+ description = "A tool to verify that your files are in harmony with your .editorconfig";
+ homepage = "https://editorconfig-checker.github.io/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ uri-canva zowoq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix
new file mode 100644
index 000000000000..e563ff203a23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/editorconfig-core-c/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit, cmake, pcre, doxygen }:
+
+stdenv.mkDerivation rec {
+ name = "editorconfig-core-c-${meta.version}";
+
+ src = fetchgit {
+ url = "https://github.com/editorconfig/editorconfig-core-c.git";
+ rev = "v${meta.version}";
+ sha256 = "0awpb63ci85kal3pnlj2b54bay8igj1rbc13d8gqkvidlb51nnx4";
+ fetchSubmodules = true;
+ inherit name;
+ };
+
+ buildInputs = [ pcre ];
+ nativeBuildInputs = [ cmake doxygen ];
+
+ # Multiple doxygen can not generate man pages in the same base directory in
+ # parallel: https://bugzilla.gnome.org/show_bug.cgi?id=791153
+ enableParallelBuilding = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://editorconfig.org/";
+ description = "EditorConfig core library written in C";
+ longDescription = ''
+ EditorConfig makes it easy to maintain the correct coding style when
+ switching between different text editors and between different
+ projects. The EditorConfig project maintains a file format and plugins
+ for various text editors which allow this file format to be read and used
+ by those editors. For information on the file format and supported text
+ editors, see the EditorConfig website.
+ '';
+ downloadPage = "https://github.com/editorconfig/editorconfig-core-c";
+ license = with licenses; [ bsd2 bsd3 ];
+ version = "0.12.1";
+ maintainers = with maintainers; [ dochang ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/eggdbus/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/eggdbus/default.nix
new file mode 100644
index 000000000000..d1211c9fcecd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/eggdbus/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, glib, dbus, dbus-glib }:
+
+stdenv.mkDerivation rec {
+ name = "eggdbus-0.6";
+
+ src = fetchurl {
+ url = "https://hal.freedesktop.org/releases/${name}.tar.gz";
+ sha256 = "118hj63ac65zlg71kydv4607qcg1qpdlql4kvhnwnnhar421jnq4";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib dbus dbus-glib ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://hal.freedesktop.org/releases/";
+ description = "D-Bus bindings for GObject";
+ platforms = platforms.linux;
+ license = licenses.lgpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
new file mode 100644
index 000000000000..3778793b71cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "elfinfo";
+ version = "1.1.0";
+
+ goPackagePath = "github.com/xyproto/elfinfo";
+ src = fetchFromGitHub {
+ rev = version;
+ owner = "xyproto";
+ repo = "elfinfo";
+ sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Small utility for showing information about ELF files";
+ homepage = "https://elfinfo.roboticoverlords.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix
new file mode 100644
index 000000000000..e8992b62665f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfkickers/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "elfkickers";
+ version = "3.1a";
+
+ src = fetchurl {
+ url = "http://www.muppetlabs.com/~breadbox/pub/software/ELFkickers-${version}.tar.gz";
+ sha256 = "02354yn1lh1dxny35ky2d0b44iq302krsqpwk5grr4glma00hhq6";
+ };
+
+ makeFlags = [ "CC=cc prefix=$(out)" ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://www.muppetlabs.com/~breadbox/software/elfkickers.html";
+ description = "A collection of programs that access and manipulate ELF files";
+ platforms = platforms.linux;
+ license = licenses.gpl2;
+ maintainers = [ maintainers.dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch
new file mode 100644
index 000000000000..409f1311c315
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/debug-info-from-env.patch
@@ -0,0 +1,27 @@
+Look up .build-id files relative to the directories in the
+colon-separated environment variable NIX_DEBUG_INFO_DIRS, unless
+overriden by --debuginfo-path.
+
+diff -ru elfutils-0.169-orig/libdwfl/argp-std.c elfutils-0.169/libdwfl/argp-std.c
+--- elfutils-0.169-orig/libdwfl/argp-std.c 2017-05-02 23:05:52.000000000 +0200
++++ elfutils-0.169/libdwfl/argp-std.c 2017-07-28 16:08:06.739558106 +0200
+@@ -376,5 +376,7 @@
+ const struct argp *
+ dwfl_standard_argp (void)
+ {
++ debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS");
++
+ return &libdwfl_argp;
+ }
+diff -ru elfutils-0.169-orig/src/stack.c elfutils-0.169/src/stack.c
+--- elfutils-0.169-orig/src/stack.c 2017-02-24 11:55:28.000000000 +0100
++++ elfutils-0.169/src/stack.c 2017-07-28 15:50:06.743196696 +0200
+@@ -631,6 +631,8 @@
+ /* Set locale. */
+ (void) setlocale (LC_ALL, "");
+
++ debuginfo_path = getenv("NIX_DEBUG_INFO_DIRS");
++
+ const struct argp_option options[] =
+ {
+ { NULL, 0, NULL, 0, N_("Input selection options:"), 0 },
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
new file mode 100644
index 000000000000..4ad7f8300665
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs, argp-standalone }:
+
+# TODO: Look at the hardcoded paths to kernel, modules etc.
+stdenv.mkDerivation rec {
+ pname = "elfutils";
+ version = "0.180";
+
+ src = fetchurl {
+ url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "17an1f67bfzxin482nbcxdl5qvywm27i9kypjyx8ilarbkivc9xq";
+ };
+
+ patches = [ ./debug-info-from-env.patch ];
+
+ hardeningDisable = [ "format" ];
+
+ # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
+ # as the host-bzip2 will be in the path.
+ nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
+ buildInputs = [ zlib bzip2 xz ]
+ ++ lib.optional stdenv.hostPlatform.isMusl argp-standalone;
+
+ propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
+
+ preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+ NIX_CFLAGS_COMPILE+=" -fgnu89-inline"
+ '';
+
+ configureFlags =
+ [ "--program-prefix=eu-" # prevent collisions with binutils
+ "--enable-deterministic-archives"
+ "--disable-debuginfod"
+ ];
+
+ enableParallelBuilding = true;
+
+ doCheck = false; # fails 3 out of 174 tests
+ doInstallCheck = false; # fails 70 out of 174 tests
+
+ meta = {
+ homepage = "https://sourceware.org/elfutils/";
+ description = "A set of utilities to handle ELF objects";
+ platforms = lib.platforms.linux;
+ license = lib.licenses.gpl3;
+ maintainers = [ lib.maintainers.eelco ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/epm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/epm/default.nix
new file mode 100644
index 000000000000..8caa33c20d1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/epm/default.nix
@@ -0,0 +1,27 @@
+{stdenv, fetchFromGitHub, rpm}:
+
+stdenv.mkDerivation rec {
+ pname = "epm";
+ version = "4.4";
+
+ src = fetchFromGitHub {
+ repo = "epm";
+ owner = "michaelrsweet";
+ rev = "v${version}";
+ sha256 = "0kaw7v2m20qirapkps4dna6nf9xibnwljvvv0l9vpvi920kw7j7p";
+ };
+
+ buildInputs = [ rpm ];
+
+ preInstall = ''
+ sed -i 's/README/README.md/' Makefile
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The ESP Package Manager generates distribution archives for a variety of platforms";
+ homepage = "https://www.msweet.org/projects.php?Z2";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix
new file mode 100644
index 000000000000..b289c16b7a6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/findnewest/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "findnewest";
+ version = "0.3";
+
+ src = fetchFromGitHub {
+ owner = "0-wiz-0";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "1x1cbn2b27h5r0ah5xc06fkalfdci2ngrgd4wibxjw0h88h0nvgq";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/0-wiz-0/findnewest";
+ description = "Recursively find newest file in a hierarchy and print its timestamp";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ bhipple ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix
new file mode 100644
index 000000000000..69d7c6b3919f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fsatrace/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "fsatrace";
+ version = "0.0.1-324";
+
+ src = fetchFromGitHub {
+ owner = "jacereda";
+ repo = "fsatrace";
+ rev = "41fbba17da580f81ababb32ec7e6e5fd49f11473";
+ sha256 = "1ihm2v723idd6m0kc1z9v73hmfvh2v0vjs8wvx5w54jaxh3lmj1y";
+ };
+
+ installDir = "libexec/${pname}-${version}";
+
+ makeFlags = [ "INSTALLDIR=$(out)/$(installDir)" ];
+
+ preInstall = ''
+ mkdir -p $out/$installDir
+ '';
+
+ postInstall = ''
+ mkdir -p $out/bin
+ ln -s $out/$installDir/fsatrace $out/bin/fsatrace
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jacereda/fsatrace";
+ description = "filesystem access tracer";
+ license = licenses.isc;
+ maintainers = [ maintainers.peti ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
new file mode 100644
index 000000000000..4a1d1288a4c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+ # for xargs
+, gettext
+, libtool
+, makeWrapper
+, texinfo
+, CoreServices
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fswatch";
+ version = "1.15.0";
+
+ src = fetchFromGitHub {
+ owner = "emcrisostomo";
+ repo = "fswatch";
+ rev = version;
+ sha256 = "11479ac436g8bwk0lfnmdms0cirv9k11pdvfrrg9jwkki1j1abkk";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
+ buildInputs = [ gettext libtool makeWrapper texinfo ];
+
+ meta = with stdenv.lib; {
+ description = "A cross-platform file change monitor with multiple backends";
+ homepage = "https://github.com/emcrisostomo/fswatch";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix
new file mode 100644
index 000000000000..e15e48b0f2a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, IOKit
+, libftdi1
+, libusb-compat-0_1
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fujprog";
+ version = "4.8";
+
+ src = fetchFromGitHub {
+ owner = "kost";
+ repo = "${pname}";
+ rev = "v${version}";
+ sha256 = "08kzkzd5a1wfd1aycywdynxh3qy6n7z9i8lihkahmb4xac3chmz5";
+ };
+
+ nativeBuildInputs = [
+ cmake
+ pkgconfig
+ ];
+
+ buildInputs = [
+ libftdi1
+ libusb-compat-0_1
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
+
+ meta = with stdenv.lib; {
+ description = "JTAG programmer for the ULX3S and ULX2S open hardware FPGA development boards";
+ homepage = "https://github.com/kost/fujprog";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ trepetti ];
+ platforms = platforms.all;
+ changelog = "https://github.com/kost/fujprog/releases/tag/v${version}";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/darwin-target-match.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/darwin-target-match.patch
new file mode 100644
index 000000000000..978a67950569
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/darwin-target-match.patch
@@ -0,0 +1,11 @@
+--- a/configure 2017-06-05 00:51:26.000000000 +0900
++++ b/configure 2018-03-06 23:12:58.000000000 +0900
+@@ -3644,7 +3644,7 @@
+ noconfigdirs="$noconfigdirs ld gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+- x86_64-*-darwin[912]*)
++ x86_64-*-darwin*)
+ noconfigdirs="$noconfigdirs ld gas gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/debug-info-from-env.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/debug-info-from-env.patch
new file mode 100644
index 000000000000..de59bd2d17bb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/debug-info-from-env.patch
@@ -0,0 +1,24 @@
+diff -ur a/gdb/main.c b/gdb/main.c
+--- a/gdb/main.c 2020-02-08 13:50:14.000000000 +0100
++++ b/gdb/main.c 2020-02-24 10:02:07.731806739 +0100
+@@ -567,9 +567,17 @@
+ gdb_sysroot = xstrdup (TARGET_SYSROOT_PREFIX);
+ }
+
+- debug_file_directory
+- = xstrdup (relocate_gdb_directory (DEBUGDIR,
+- DEBUGDIR_RELOCATABLE).c_str ());
++ debug_file_directory = getenv ("NIX_DEBUG_INFO_DIRS");
++ if (debug_file_directory != NULL)
++ // This might be updated later using
++ // $ set debug-file-directory /to/some/path
++ // which will use xfree. We must then have a xmallocated
++ // copy of the string that can be xfeed later.
++ debug_file_directory = xstrdup (debug_file_directory);
++ else
++ debug_file_directory
++ = xstrdup (relocate_gdb_directory (DEBUGDIR,
++ DEBUGDIR_RELOCATABLE).c_str ());
+
+ gdb_datadir = relocate_gdb_directory (GDB_DATADIR,
+ GDB_DATADIR_RELOCATABLE);
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
new file mode 100644
index 000000000000..a4806634432d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, targetPackages
+
+# Build time
+, fetchurl, pkgconfig, perl, texinfo, setupDebugInfoDirs, buildPackages
+
+# Run time
+, ncurses, readline, gmp, mpfr, expat, libipt, zlib, dejagnu
+
+, pythonSupport ? stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.hostPlatform.isCygwin, python3 ? null
+, guile ? null
+, safePaths ? [
+ # $debugdir:$datadir/auto-load are whitelisted by default by GDB
+ "$debugdir" "$datadir/auto-load"
+ # targetPackages so we get the right libc when cross-compiling and using buildPackages.gdb
+ targetPackages.stdenv.cc.cc.lib
+ ]
+}:
+
+let
+ basename = "gdb";
+ targetPrefix = stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+ "${stdenv.targetPlatform.config}-";
+in
+
+assert pythonSupport -> python3 != null;
+
+stdenv.mkDerivation rec {
+ pname = targetPrefix + basename;
+ version = "9.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/gdb/${basename}-${version}.tar.xz";
+ sha256 = "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n";
+ };
+
+ postPatch = if stdenv.isDarwin then ''
+ substituteInPlace gdb/darwin-nat.c \
+ --replace '#include "bfd/mach-o.h"' '#include "mach-o.h"'
+ '' else null;
+
+ patches = [
+ ./debug-info-from-env.patch
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ ./darwin-target-match.patch
+ ];
+
+ nativeBuildInputs = [ pkgconfig texinfo perl setupDebugInfoDirs ];
+
+ buildInputs = [ ncurses readline gmp mpfr expat libipt zlib guile ]
+ ++ stdenv.lib.optional pythonSupport python3
+ ++ stdenv.lib.optional doCheck dejagnu;
+
+ propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+ enableParallelBuilding = true;
+
+ # darwin build fails with format hardening since v7.12
+ hardeningDisable = stdenv.lib.optionals stdenv.isDarwin [ "format" ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral";
+
+ # TODO(@Ericson2314): Always pass "--target" and always prefix.
+ configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
+
+ # GDB have to be built out of tree.
+ preConfigure = ''
+ mkdir _build
+ cd _build
+ '';
+ configureScript = "../configure";
+
+ configureFlags = with stdenv.lib; [
+ "--enable-targets=all" "--enable-64-bit-bfd"
+ "--disable-install-libbfd"
+ "--disable-shared" "--enable-static"
+ "--with-system-zlib"
+ "--with-system-readline"
+
+ "--with-gmp=${gmp.dev}"
+ "--with-mpfr=${mpfr.dev}"
+ "--with-expat" "--with-libexpat-prefix=${expat.dev}"
+ "--with-auto-load-safe-path=${builtins.concatStringsSep ":" safePaths}"
+ ] ++ stdenv.lib.optional (!pythonSupport) "--without-python";
+
+ postInstall =
+ '' # Remove Info files already provided by Binutils and other packages.
+ rm -v $out/share/info/bfd.info
+ '';
+
+ # TODO: Investigate & fix the test failures.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "The GNU Project debugger";
+
+ longDescription = ''
+ GDB, the GNU Project debugger, allows you to see what is going
+ on `inside' another program while it executes -- or what another
+ program was doing at the moment it crashed.
+ '';
+
+ homepage = "https://www.gnu.org/software/gdb/";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ platforms = with platforms; linux ++ cygwin ++ darwin;
+ maintainers = with maintainers; [ pierron globin lsix ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
new file mode 100644
index 000000000000..ecbfc2ae7569
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, gdb
+, flask
+, flask-socketio
+, flask-compress
+, pygdbmi
+, pygments
+, gevent
+, gevent-websocket
+, eventlet
+, }:
+
+buildPythonApplication rec {
+ pname = "gdbgui";
+ version = "0.13.2.1";
+
+ buildInputs = [ gdb ];
+ propagatedBuildInputs = [
+ flask
+ flask-socketio
+ flask-compress
+ pygdbmi
+ pygments
+ gevent
+ gevent-websocket
+ eventlet
+ ];
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0zn5wi47m8pn4amx574ryyhqvhynipxzyxbx0878ap6g36vh6l1h";
+ };
+
+ postPatch = ''
+ echo ${version} > gdbgui/VERSION.txt
+ # remove upper version bound
+ sed -ie 's!, <.*"!"!' setup.py
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/gdbgui \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ gdb ]}
+ '';
+
+ # tests do not work without stdout/stdin
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A browser-based frontend for GDB";
+ homepage = "https://www.gdbgui.com/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ yrashk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gede/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gede/default.nix
new file mode 100644
index 000000000000..b27c3a515bbe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gede/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, lib, fetchurl, makeWrapper, python, qmake, ctags, gdb }:
+
+mkDerivation rec {
+ pname = "gede";
+ version = "2.16.2";
+
+ src = fetchurl {
+ url = "http://gede.acidron.com/uploads/source/${pname}-${version}.tar.xz";
+ sha256 = "18a8n9yvhgkbc97p2995j7b5ncfdzy1fy13ahdafqmcpkl4r1hrj";
+ };
+
+ nativeBuildInputs = [ qmake makeWrapper python ];
+
+ buildInputs = [ ctags ];
+
+ dontUseQmakeConfigure = true;
+
+ buildPhase = ":";
+
+ installPhase = ''
+ python build.py install --verbose --prefix="$out"
+ wrapProgram $out/bin/gede \
+ --prefix PATH : ${lib.makeBinPath [ ctags gdb ]}
+ '';
+
+ meta = with lib; {
+ description = "Graphical frontend (GUI) to GDB";
+ homepage = "http://gede.acidron.com";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ juliendehos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix
new file mode 100644
index 000000000000..114a7530f271
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gengetopt/default.nix
@@ -0,0 +1,41 @@
+{ fetchurl, stdenv, texinfo, help2man }:
+
+stdenv.mkDerivation rec {
+ pname = "gengetopt";
+ version = "2.23";
+
+ src = fetchurl {
+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "1b44fn0apsgawyqa4alx2qj5hls334mhbszxsy6rfr0q074swhdr";
+ };
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ texinfo help2man ];
+
+ #Fix, see #28255
+ postPatch = ''
+ substituteInPlace configure --replace \
+ 'set -o posix' \
+ 'set +o posix'
+ '';
+
+ meta = {
+ description = "Command-line option parser generator";
+
+ longDescription =
+ '' GNU Gengetopt program generates a C function that uses getopt_long
+ function to parse the command line options, to validate them and
+ fills a struct
+ '';
+
+ homepage = "https://www.gnu.org/software/gengetopt/";
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/global/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/global/default.nix
new file mode 100644
index 000000000000..36798fe4fc1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/global/default.nix
@@ -0,0 +1,59 @@
+{ fetchurl, stdenv, libtool, makeWrapper
+, coreutils, ctags, ncurses, pythonPackages, sqlite, universal-ctags
+}:
+
+stdenv.mkDerivation rec {
+ pname = "global";
+ version = "6.6.5";
+
+ src = fetchurl {
+ url = "mirror://gnu/global/${pname}-${version}.tar.gz";
+ sha256 = "10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww";
+ };
+
+ nativeBuildInputs = [ libtool makeWrapper ];
+
+ buildInputs = [ ncurses ];
+
+ propagatedBuildInputs = [ pythonPackages.pygments ];
+
+ configureFlags = [
+ "--with-ltdl-include=${libtool}/include"
+ "--with-ltdl-lib=${libtool.lib}/lib"
+ "--with-ncurses=${ncurses.dev}"
+ "--with-sqlite3=${sqlite.dev}"
+ "--with-exuberant-ctags=${ctags}/bin/ctags"
+ "--with-universal-ctags=${universal-ctags}/bin/ctags"
+ "--with-posix-sort=${coreutils}/bin/sort"
+ ];
+
+ doCheck = true;
+
+ postInstall = ''
+ mkdir -p "$out/share/emacs/site-lisp"
+ cp -v *.el "$out/share/emacs/site-lisp"
+
+ wrapProgram $out/bin/gtags \
+ --prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
+ wrapProgram $out/bin/global \
+ --prefix PYTHONPATH : "$(toPythonPath ${pythonPackages.pygments})"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Source code tag system";
+ longDescription = ''
+ GNU GLOBAL is a source code tagging system that works the same way
+ across diverse environments (Emacs, vi, less, Bash, web browser, etc).
+ You can locate specified objects in source files and move there easily.
+ It is useful for hacking a large project containing many
+ subdirectories, many #ifdef and many main() functions. It is similar
+ to ctags or etags but is different from them at the point of
+ independence of any editor. It runs on a UNIX (POSIX) compatible
+ operating system like GNU and BSD.
+ '';
+ homepage = "https://www.gnu.org/software/global/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ pSub peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/darwin-secure-format.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/darwin-secure-format.patch
new file mode 100644
index 000000000000..b14d8be6ef16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/darwin-secure-format.patch
@@ -0,0 +1,15 @@
+With format string strictness, High Sierra also enforces that %n isn't used
+in dynamic format strings, but we should just disable its use on darwin in
+general.
+
+--- a/lib/vasnprintf.c 2017-06-22 15:19:15.000000000 -0700
++++ b/lib/vasnprintf.c 2017-06-22 15:20:20.000000000 -0700
+@@ -4869,7 +4869,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+ #endif
+ *fbp = dp->conversion;
+ #if USE_SNPRINTF
+-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
++# if !defined(__APPLE__) && !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+ fbp[1] = '%';
+ fbp[2] = 'n';
+ fbp[3] = '\0';
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/default.nix
new file mode 100644
index 000000000000..2e3e4acfdc1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl }:
+
+# 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 {
+ name = "gnum4-1.4.18";
+
+ src = fetchurl {
+ url = "mirror://gnu/m4/m4-1.4.18.tar.bz2";
+ sha256 = "1xkwwq0sgv05cla0g0a01yzhk0wpsn9y40w9kh9miiiv0imxfh36";
+ };
+
+ doCheck = false;
+
+ configureFlags = [ "--with-syscmd-shell=${stdenv.shell}" ];
+
+ # Upstream is aware of it; it may be in the next release.
+ patches =
+ [
+ ./s_isdir.patch
+ (fetchurl {
+ url = "https://sources.debian.org/data/main/m/m4/1.4.18-2/debian/patches/01-fix-ftbfs-with-glibc-2.28.patch";
+ sha256 = "12lmdnbml9lfvy0khpjc42riicddaz7li8wmbnsam7zsw6al11qk";
+ })
+ ]
+ ++ stdenv.lib.optional stdenv.isDarwin ./darwin-secure-format.patch;
+
+ meta = {
+ homepage = "https://www.gnu.org/software/m4/";
+ description = "GNU M4, a macro processor";
+
+ longDescription = ''
+ GNU M4 is an implementation of the traditional Unix macro
+ processor. It is mostly SVR4 compatible although it has some
+ extensions (for example, handling more than 9 positional
+ parameters to macros). GNU M4 also has built-in functions for
+ including files, running shell commands, doing arithmetic, etc.
+
+ GNU M4 is a macro processor in the sense that it copies its
+ input to the output expanding macros as it goes. Macros are
+ either builtin or user-defined and can take any number of
+ arguments. Besides just doing macro expansion, m4 has builtin
+ functions for including named files, running UNIX commands,
+ doing integer arithmetic, manipulating text in various ways,
+ recursion etc... m4 can be used either as a front-end to a
+ compiler or as a macro processor in its own right.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.unix ++ stdenv.lib.platforms.windows;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/s_isdir.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/s_isdir.patch
new file mode 100644
index 000000000000..a009a4ba4465
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gnum4/s_isdir.patch
@@ -0,0 +1,14 @@
+Fails to build with glibc 2.12.1 without this patch.
+
+http://lists.gnu.org/archive/html/bug-m4/2010-05/msg00002.html
+
+--- a/src/path.c
++++ b/src/path.c
+@@ -22,6 +22,7 @@
+ /* Handling of path search of included files via the builtins "include"
+ and "sinclude". */
+
+ #include "m4.h"
++#include "sys/stat.h"
+
+ struct includes
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix
new file mode 100644
index 000000000000..91c6518bc26d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "go-license-detector";
+ version = "3.1.0";
+
+ src = fetchFromGitHub {
+ owner = "src-d";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ln1z3y9q5igf9djkxw05ql2hb1ijcvvz0mrbwz11cdv9xrsa4z4";
+ };
+
+ vendorSha256 = "0gan5l7vsq0hixxcymhhs8p07v92w60r0lhgvrr9a99nic12vmia";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Reliable project licenses detector";
+ homepage = "https://github.com/src-d/go-license-detector";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gob2/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
new file mode 100644
index 000000000000..b1e107368ba7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gob2/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, pkgconfig, glib, bison, flex, gnome3 }:
+
+stdenv.mkDerivation rec {
+ pname = "gob2";
+ version = "2.0.20";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "5fe5d7990fd65b0d4b617ba894408ebaa6df453f2781c15a1cfdf2956c0c5428";
+ };
+
+ # configure script looks for d-bus but it is only needed for tests
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib bison flex ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ versionPolicy = "none";
+ };
+ };
+
+ meta = {
+ description = "Preprocessor for making GObjects with inline C code";
+ homepage = "https://www.jirka.org/gob.html";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix
new file mode 100644
index 000000000000..e013428a6f7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/3.0.x.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ name = "gperf-3.0.4";
+
+ src = fetchurl {
+ url = "mirror://gnu/gperf/${name}.tar.gz";
+ sha256 = "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook ];
+ patches = [ ./gperf-ar-fix.patch ];
+ meta = {
+ description = "Perfect hash function generator";
+
+ longDescription = ''
+ GNU gperf is a perfect hash function generator. For a given
+ list of strings, it produces a hash function and hash table, in
+ form of C or C++ code, for looking up a value depending on the
+ input string. The hash function is perfect, which means that
+ the hash table has no collisions, and the hash table lookup
+ needs a single string comparison only.
+
+ GNU gperf is highly customizable. There are options for
+ generating C or C++ code, for emitting switch statements or
+ nested ifs instead of a hash table, and for tuning the algorithm
+ employed by gperf.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ homepage = "https://www.gnu.org/software/gperf/";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/default.nix
new file mode 100644
index 000000000000..bf85cd91380e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/default.nix
@@ -0,0 +1,33 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ name = "gperf-3.1";
+
+ src = fetchurl {
+ url = "mirror://gnu/gperf/${name}.tar.gz";
+ sha256 = "1qispg6i508rq8pkajh26cznwimbnj06wq9sd85vg95v8nwld1aq";
+ };
+
+ meta = {
+ description = "Perfect hash function generator";
+
+ longDescription = ''
+ GNU gperf is a perfect hash function generator. For a given
+ list of strings, it produces a hash function and hash table, in
+ form of C or C++ code, for looking up a value depending on the
+ input string. The hash function is perfect, which means that
+ the hash table has no collisions, and the hash table lookup
+ needs a single string comparison only.
+
+ GNU gperf is highly customizable. There are options for
+ generating C or C++ code, for emitting switch statements or
+ nested ifs instead of a hash table, and for tuning the algorithm
+ employed by gperf.
+ '';
+
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ homepage = "https://www.gnu.org/software/gperf/";
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/gperf-ar-fix.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/gperf-ar-fix.patch
new file mode 100644
index 000000000000..942d726d76ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gperf/gperf-ar-fix.patch
@@ -0,0 +1,46 @@
+--- gperf-3.0.4/lib/configure.ac 2009-01-15 02:24:31.000000000 +0200
++++ gperf-3.0.4.patched/lib/configure.ac 2018-11-29 06:37:20.968627533 +0300
+@@ -21,10 +21,12 @@
+
+ AC_PREREQ([2.60])
+ AC_INIT([hash.cc])
++m4_include([../aclocal.m4])
+ AC_PROG_MAKE_SET
+ dnl
+ dnl checks for programs
+ dnl
++AC_SUBST([AR])
+ AC_PROG_CC
+ dnl sets variable CC
+ AC_PROG_CPP
+--- gperf-3.0.4/lib/Makefile.in 2008-08-23 21:52:48.000000000 +0300
++++ gperf-3.0.4.patched/lib/Makefile.in 2018-11-29 06:36:43.161998888 +0300
+@@ -41,7 +41,7 @@
+ # Both C and C++ compiler
+ OBJEXT = @OBJEXT@
+ # Other
+-AR = ar
++AR = @AR@
+ AR_FLAGS = rc
+ RANLIB = @RANLIB@
+ MV = mv
+--- gperf-3.0.4/doc/configure.ac 2009-01-15 02:24:31.000000000 +0200
++++ gperf-3.0.4.patched/doc/configure.ac 2018-11-29 06:36:00.961288421 +0300
+@@ -21,6 +21,7 @@
+
+ AC_PREREQ([2.60])
+ AC_INIT([gperf.1])
++m4_include([../aclocal.m4])
+ PACKAGE=gperf
+ AC_SUBST([PACKAGE])
+ AC_PROG_MAKE_SET
+--- gperf-3.0.4/src/configure.ac 2009-01-15 02:24:30.000000000 +0200
++++ gperf-3.0.4.patched/src/configure.ac 2018-11-29 06:34:21.718576658 +0300
+@@ -21,6 +21,7 @@
+
+ AC_PREREQ([2.60])
+ AC_INIT([main.cc])
++m4_include([../aclocal.m4])
+ AC_CONFIG_HEADER([config.h])
+ AC_PROG_MAKE_SET
+ dnl
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
new file mode 100644
index 000000000000..182d28375b61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gpshell/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, globalplatform, pcsclite, gppcscconnectionplugin
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ pname = "gpshell";
+ version = "1.4.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/globalplatform/gpshell-${version}.tar.gz";
+ sha256 = "19a77zvyf2vazbv17185s4pynhylk2ky8vhl4i8pg9zww29sicqi";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ globalplatform pcsclite makeWrapper ];
+
+ postFixup = ''
+ wrapProgram "$out/bin/gpshell" --prefix LD_LIBRARY_PATH : "${gppcscconnectionplugin}/lib"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sourceforge.net/p/globalplatform/wiki/Home/";
+ description = "Smartcard management application";
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gputils/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gputils/default.nix
new file mode 100644
index 000000000000..2ad496bfb887
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gputils/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "gputils";
+ version = "1.5.0-1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/gputils/${pname}-${version}.tar.bz2";
+ sha256 = "055v83fdgqljprapf7rmh8x66mr13fj0qypj49xba5spx0ca123g";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://gputils.sourceforge.io";
+ description = "A collection of tools for the Microchip (TM) PIC microcontrollers. It includes gpasm, gplink, and gplib";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ yorickvp ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix
new file mode 100644
index 000000000000..6cdcce77ffdc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkdialog/default.nix
@@ -0,0 +1,21 @@
+{stdenv, fetchurl, gtk2, pkgconfig }:
+
+stdenv.mkDerivation {
+ name = "gtkdialog-0.8.3";
+
+ src = fetchurl {
+ url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/gtkdialog/gtkdialog-0.8.3.tar.gz";
+ sha256 = "ff89d2d7f1e6488e5df5f895716ac1d4198c2467a2a5dc1f51ab408a2faec38e";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 ];
+
+ meta = {
+ homepage = "https://code.google.com/archive/p/gtkdialog/";
+ # community links: http://murga-linux.com/puppy/viewtopic.php?t=111923 -> https://github.com/01micko/gtkdialog
+ description = "Small utility for fast and easy GUI building from many scripted and compiled languages";
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/bench.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/bench.patch
new file mode 100644
index 000000000000..3d00a03e9a58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/bench.patch
@@ -0,0 +1,60 @@
+--- gtkperf/src/callbacks.c 2005-10-30 11:33:42.000000000 +0000
++++ gtkperf-patched/src/callbacks.c 2008-05-23 23:41:17.000000000 +0100
+@@ -219,6 +219,13 @@
+ }
+
+
++void
++on_cmdline_test(char *optarg)
++{
++ appdata->test_type = atoi(optarg);
++}
++
++
+ /* Initialize appdata */
+ void
+ setup_appdata(AppData * appdata_in)
+@@ -398,7 +405,7 @@
+ appdata->pixbuf_drawing = gdk_pixbuf_new_from_file (filename, NULL);
+
+ gtk_combo_box_set_active (GTK_COMBO_BOX (appdata->combobox_testtype),
+- 0);
++ appdata->test_type);
+
+ /* create end mark to info textview */
+ GtkTextIter iter;
+--- gtkperf/src/callbacks.h 2005-10-30 10:21:23.000000000 +0000
++++ gtkperf-patched/src/callbacks.h 2008-05-23 23:22:30.000000000 +0100
+@@ -13,6 +13,7 @@
+ void on_cmdline_run_all ();
+ void on_cmdline_help () ;
+ void on_cmdline_count (char *optarg) ;
++void on_cmdline_test (char *optarg) ;
+ void on_window_main_show (AppData * data);
+
+ gboolean
+--- gtkperf/src/main.c 2005-10-30 11:26:42.000000000 +0000
++++ gtkperf-patched/src/main.c 2008-05-23 23:44:02.000000000 +0100
+@@ -65,9 +65,10 @@
+ {"help", 0, 0, 0},
+ {"automatic", 0, 0, 0},
+ {"count", 1, 0, 0},
++ {"test", 1, 0, 0},
+ {0, 0, 0, 0}
+ };
+- c = getopt_long (argc, argv, "hac:",
++ c = getopt_long (argc, argv, "hac:t:",
+ long_options, &option_index);
+ if (c == -1)
+ break;
+@@ -104,6 +105,10 @@
+ on_cmdline_count(optarg);
+ break;
+
++ case 't':
++ on_cmdline_test(optarg);
++ break;
++
+ default:
+ case 'h':
+ on_cmdline_help ();
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix
new file mode 100644
index 000000000000..82ee29172778
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/gtkperf/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, gtk2, pkgconfig, libintl }:
+
+stdenv.mkDerivation {
+ name = "gtkperf-0.40.0";
+ src = fetchurl {
+ url = "mirror://sourceforge//gtkperf/gtkperf_0.40.tar.gz";
+ sha256 = "0yxj3ap3yfi76vqg6xjvgc16nfi9arm9kp87s35ywf10fd73814p";
+ };
+
+ hardeningDisable = [ "format" ];
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ gtk2 libintl ];
+
+ # https://openbenchmarking.org/innhold/7e9780c11550d09aa67bdba71248facbe2d781db
+ patches = [ ./bench.patch ];
+
+ meta = with stdenv.lib; {
+ description = "Application designed to test GTK performance";
+ homepage = "http://gtkperf.sourceforge.net/";
+ license = with licenses; [ gpl2 ];
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/1.40.4-cygwin-nls.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/1.40.4-cygwin-nls.patch
new file mode 100644
index 000000000000..82f8cf1cb37b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/1.40.4-cygwin-nls.patch
@@ -0,0 +1,165 @@
+LD_PRELOAD by itself only works with Cygwin builtin functions, but
+textdomain() and friends come from libintl. In order to override
+those functions, we have to "replace" cygintl-?.dll since functions are
+bound to a DLL name at link time. Our replacement will be used since
+it is loaded first by LD_PRELOAD.
+
+But as we are making this *the* libintl, we need to provide
+pass-throughs for the other functions which we're not overriding,
+otherwise Locale::gettext won't load (not to mention the program
+that we're trying to help2man).
+
+--- help2man-1.46.5/Makefile.in 2014-10-09 13:03:01.000000000 +0200
++++ help2man-1.46.5/Makefile.in 2015-05-12 14:46:52.995521900 +0200
+@@ -76,7 +76,8 @@
+ fi
+
+ install_preload: install_dirs preload
+- $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir)
++ $(INSTALL_PROGRAM) lib/cygintl-9.dll $(DESTDIR)$(pkglibdir)
++ ln -sf cygintl-9.dll $(DESTDIR)$(pkglibdir)/$(preload).so
+
+ install_l10n: install_dirs msg_l10n man_l10n info_l10n
+ set -e; \
+@@ -144,7 +146,9 @@
+
+ preload: $(preload).so
+ $(preload).so: $(srcdir)/$(preload).c
+- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -fPIC -shared $? $(LIBS)
++ mkdir -p lib
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lib/cygintl-9.dll -shared $? $(LIBS)
++ ln -sf lib/cygintl-9.dll $@
+
+ man: $(target).1
+ $(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL
+--- help2man-1.46.5/bindtextdomain.c 2009-11-13 00:01:34.000000000 -0600
++++ help2man-1.46.5/bindtextdomain.c 2011-12-29 00:24:33.608078600 -0600
+@@ -27,12 +27,34 @@ static char *(*r_textdomain)(char const
+ static char *(*r_bindtextdomain)(char const *, char const *) = 0;
+ static char *(*r_bind_textdomain_codeset)(char const *, char const *) = 0;
+
++#ifdef __CYGWIN__
++static void *RTLD_NEXT = 0;
++static char *(*r_gettext)(const char *) = 0;
++static char *(*r_dgettext)(const char *, const char *) = 0;
++static char *(*r_dcgettext)(const char *, const char *, int) = 0;
++static char *(*r_ngettext)(const char *, const char *, unsigned long int) = 0;
++static char *(*r_dngettext)(const char *, const char *, const char *,
++ unsigned long int) = 0;
++static char *(*r_dcngettext)(const char *, const char *, const char *,
++ unsigned long int, int) = 0;
++static char *(*r_setlocale)(int, const char *) = 0;
++
++#define SYM(sym) libintl_ ## sym
++#else
++#define SYM(sym) sym
++#endif
++
+ void setup()
+ {
+ static int done = 0;
+ if (done++)
+ return;
+
++#ifdef __CYGWIN__
++ if (!(RTLD_NEXT = dlopen("/usr/bin/cygintl-9.dll", RTLD_LAZY)))
++ die("libintl8 not found");
++#endif
++
+ if (!(e_textdomain = getenv("TEXTDOMAIN")))
+ die("TEXTDOMAIN not set");
+
+@@ -48,9 +70,19 @@ void setup()
+ if (!(r_bind_textdomain_codeset = dlsym(RTLD_NEXT,
+ "bind_textdomain_codeset")))
+ die("can't find symbol \"bind_textdomain_codeset\"");
++
++#ifdef __CYGWIN__
++ r_gettext = dlsym(RTLD_NEXT, "libintl_gettext");
++ r_dgettext = dlsym(RTLD_NEXT, "libintl_dgettext");
++ r_dcgettext = dlsym(RTLD_NEXT, "libintl_dcgettext");
++ r_ngettext = dlsym(RTLD_NEXT, "libintl_ngettext");
++ r_dngettext = dlsym(RTLD_NEXT, "libintl_dngettext");
++ r_dcngettext = dlsym(RTLD_NEXT, "libintl_dcngettext");
++ r_setlocale = dlsym(RTLD_NEXT, "libintl_setlocale");
++#endif
+ }
+
+-char *textdomain(char const *domainname)
++char *SYM(textdomain)(char const *domainname)
+ {
+ char *r;
+ setup();
+@@ -61,7 +93,7 @@ char *textdomain(char const *domainname)
+ return r;
+ }
+
+-char *bindtextdomain(char const *domainname, char const *dirname)
++char *SYM(bindtextdomain)(char const *domainname, char const *dirname)
+ {
+ char const *dir = dirname;
+ setup();
+@@ -71,7 +103,7 @@ char *bindtextdomain(char const *domainn
+ return r_bindtextdomain(domainname, dir);
+ }
+
+-char *bind_textdomain_codeset(char const *domainname, char const *codeset)
++char *SYM(bind_textdomain_codeset)(char const *domainname, char const *codeset)
+ {
+ char *r;
+ setup();
+@@ -81,3 +113,54 @@ char *bind_textdomain_codeset(char const
+
+ return r;
+ }
++
++#ifdef __CYGWIN__
++
++char *libintl_gettext(const char *msgid)
++{
++ setup();
++ return r_gettext(msgid);
++}
++
++char *libintl_dgettext (const char *domainname, const char *msgid)
++{
++ setup();
++ return r_dgettext(domainname, msgid);
++}
++
++char *libintl_dcgettext (const char *domainname, const char *msgid,
++ int category)
++{
++ setup();
++ return r_dcgettext (domainname, msgid, category);
++}
++
++char *libintl_ngettext (const char *msgid1, const char *msgid2,
++ unsigned long int n)
++{
++ setup();
++ return r_ngettext (msgid1, msgid2, n);
++}
++
++char *libintl_dngettext (const char *domainname, const char *msgid1,
++ const char *msgid2, unsigned long int n)
++{
++ setup();
++ return r_dngettext (domainname, msgid1, msgid2, n);
++}
++
++char *libintl_dcngettext (const char *domainname,
++ const char *msgid1, const char *msgid2,
++ unsigned long int n, int category)
++{
++ setup();
++ return r_dcngettext (domainname, msgid1, msgid2, n, category);
++}
++
++char *libintl_setlocale (int i, const char *s)
++{
++ setup();
++ return r_setlocale (i, s);
++}
++
++#endif
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
new file mode 100644
index 000000000000..f23b5a9c8fdd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, perlPackages, gettext }:
+
+# 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 {
+ name = "help2man-1.47.16";
+
+ src = fetchurl {
+ url = "mirror://gnu/help2man/${name}.tar.xz";
+ sha256 = "1x586h7wvripcay35kdh2kvydx84y8yy93ffjah2rqw6bc65iy1y";
+ };
+
+ nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
+ buildInputs = [ perlPackages.perl perlPackages.LocaleGettext ];
+
+ doCheck = false; # target `check' is missing
+
+ patches = if stdenv.hostPlatform.isCygwin then [ ./1.40.4-cygwin-nls.patch ] else null;
+
+ # We don't use makeWrapper here because it uses substitutions our
+ # bootstrap shell can't handle.
+ postInstall = ''
+ mv $out/bin/help2man $out/bin/.help2man-wrapped
+ cat > $out/bin/help2man <<EOF
+ #! $SHELL -e
+ export PERL5LIB=\''${PERL5LIB:+:}${perlPackages.LocaleGettext}/${perlPackages.perl.libPrefix}
+ ${stdenv.lib.optionalString stdenv.hostPlatform.isCygwin
+ ''export PATH=\''${PATH:+:}${gettext}/bin''}
+ exec -a \$0 $out/bin/.help2man-wrapped "\$@"
+ EOF
+ chmod +x $out/bin/help2man
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Generate man pages from `--help' output";
+
+ longDescription =
+ '' help2man produces simple manual pages from the ‘--help’ and
+ ‘--version’ output of other commands.
+ '';
+
+ homepage = "https://www.gnu.org/software/help2man/";
+
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hound/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hound/default.nix
new file mode 100644
index 000000000000..4e817251bffe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hound/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, buildGoPackage
+, fetchFromGitHub
+, makeWrapper
+, mercurial
+, git
+}:
+
+buildGoPackage rec {
+ pname = "hound-unstable";
+ version = "2018-11-02";
+ rev = "74ec7448a234d8d09e800b92e52c92e378c07742";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ goPackagePath = "github.com/etsy/hound";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "etsy";
+ repo = "hound";
+ sha256 = "0g6nvgqjabprcl9z5ci5frhbam1dzq978h1d6aanf8vvzslfgdpq";
+ };
+
+ postInstall = with stdenv; let
+ binPath = lib.makeBinPath [ mercurial git ];
+ in ''
+ wrapProgram $out/bin/houndd --prefix PATH : ${binPath}
+ '';
+
+ meta = {
+ inherit (src.meta) homepage;
+
+ description = "Lightning fast code searching made easy";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ grahamc ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
new file mode 100644
index 000000000000..6cd439a898b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, pkgconfig, openssl, fetchFromGitHub, rustPlatform, darwin }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "hydra-cli";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "nlewo";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1jdlmc45hwblcxs6hvy3gi2dr7qyzs1sg5zr26jrpxrbvqqzrdhc";
+ };
+
+ cargoSha256 = "1sj80a99iakxxa698gggiszsrxwlwhr2sx4wmsni0cshx6z2x6za";
+
+ buildInputs = [ openssl ]
+ ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+
+ nativeBuildInputs = [
+ pkgconfig
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A client for the Hydra CI";
+ homepage = "https://github.com/nlewo/hydra-cli";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ gilligan lewo ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/common.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
new file mode 100644
index 000000000000..4e9daab9bf1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/common.nix
@@ -0,0 +1,136 @@
+{ stdenv, nix, perlPackages, buildEnv, fetchFromGitHub
+, makeWrapper, autoconf, automake, libtool, unzip, pkgconfig, sqlite, libpqxx
+, gitAndTools, mercurial, darcs, subversion, breezy, openssl, bzip2, libxslt
+, guile, perl, postgresql, nukeReferences, git, boehmgc, nlohmann_json
+, docbook_xsl, openssh, gnused, coreutils, findutils, gzip, lzma, gnutar
+, rpm, dpkg, cdrkit, pixz, lib, boost, autoreconfHook, src ? null, version ? null
+, migration ? false, patches ? []
+, tests ? {}
+}:
+
+with stdenv;
+
+if lib.versions.major nix.version == "1"
+ then throw "This Hydra version doesn't support Nix 1.x"
+else
+
+let
+ perlDeps = buildEnv {
+ name = "hydra-perl-deps";
+ paths = with perlPackages; lib.closePropagation
+ [ ModulePluggable
+ CatalystActionREST
+ CatalystAuthenticationStoreDBIxClass
+ CatalystDevel
+ CatalystDispatchTypeRegex
+ CatalystPluginAccessLog
+ CatalystPluginAuthorizationRoles
+ CatalystPluginCaptcha
+ CatalystPluginSessionStateCookie
+ CatalystPluginSessionStoreFastMmap
+ CatalystPluginSmartURI
+ CatalystPluginStackTrace
+ CatalystRuntime
+ CatalystTraitForRequestProxyBase
+ CatalystViewDownload
+ CatalystViewJSON
+ CatalystViewTT
+ CatalystXScriptServerStarman
+ CatalystXRoleApplicator
+ CryptRandPasswd
+ DBDPg
+ DBDSQLite
+ DataDump
+ DateTime
+ DigestSHA1
+ EmailMIME
+ EmailSender
+ FileSlurp
+ IOCompress
+ IPCRun
+ JSON
+ JSONAny
+ JSONXS
+ LWP
+ LWPProtocolHttps
+ NetAmazonS3
+ NetPrometheus
+ NetStatsd
+ PadWalker
+ Readonly
+ SQLSplitStatement
+ SetScalar
+ Starman
+ SysHostnameLong
+ TermSizeAny
+ TextDiff
+ TextTable
+ XMLSimple
+ nix
+ nix.perl-bindings
+ git
+ boehmgc
+ ];
+ };
+in stdenv.mkDerivation rec {
+ pname = "hydra";
+
+ inherit stdenv src version patches;
+
+ buildInputs =
+ [ makeWrapper autoconf automake libtool unzip nukeReferences sqlite libpqxx
+ gitAndTools.top-git mercurial /*darcs*/ subversion breezy openssl bzip2 libxslt
+ perlDeps perl nix
+ postgresql # for running the tests
+ nlohmann_json
+ boost
+ ];
+
+ hydraPath = lib.makeBinPath (
+ [ sqlite subversion openssh nix coreutils findutils pixz
+ gzip bzip2 lzma gnutar unzip git gitAndTools.top-git mercurial /*darcs*/ gnused breezy
+ ] ++ lib.optionals stdenv.isLinux [ rpm dpkg cdrkit ] );
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+
+ configureFlags = [ "--with-docbook-xsl=${docbook_xsl}/xml/xsl/docbook" ];
+
+ NIX_CFLAGS_COMPILE = "-pthread";
+
+ shellHook = ''
+ PATH=$(pwd)/src/script:$(pwd)/src/hydra-eval-jobs:$(pwd)/src/hydra-queue-runner:$(pwd)/src/hydra-evaluator:$PATH
+ PERL5LIB=$(pwd)/src/lib:$PERL5LIB;
+ '';
+
+ enableParallelBuilding = true;
+
+ preCheck = ''
+ patchShebangs .
+ export LOGNAME=''${LOGNAME:-foo}
+ '';
+
+ postInstall = ''
+ mkdir -p $out/nix-support
+ for i in $out/bin/*; do
+ read -n 4 chars < $i
+ if [[ $chars =~ ELF ]]; then continue; fi
+ wrapProgram $i \
+ --prefix PERL5LIB ':' $out/libexec/hydra/lib:$PERL5LIB \
+ --prefix PATH ':' $out/bin:$hydraPath \
+ --set HYDRA_RELEASE ${version} \
+ --set HYDRA_HOME $out/libexec/hydra \
+ --set NIX_RELEASE ${nix.name or "unknown"}
+ done
+ ''; # */
+
+ dontStrip = true;
+
+ passthru = { inherit perlDeps migration tests; };
+
+ meta = with stdenv.lib; {
+ description = "Nix-based continuous build system";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
new file mode 100644
index 000000000000..a6b0383d54f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
@@ -0,0 +1,41 @@
+{ fetchFromGitHub, nixStable, callPackage, nixFlakes, nixosTests }:
+
+{
+ # Package for phase-1 of the db migration for Hydra.
+ # https://github.com/NixOS/hydra/pull/711
+ hydra-migration = callPackage ./common.nix {
+ version = "2020-02-10";
+ src = fetchFromGitHub {
+ owner = "NixOS";
+ repo = "hydra";
+ rev = "add4f610ce6f206fb44702b5a894d877b3a30e3a";
+ sha256 = "1d8hdgjx2ys0zmixi2ydmimdq7ml20h1ji4amwawcyw59kssh6l3";
+ };
+ nix = nixStable;
+ migration = true;
+
+ tests = {
+ db-migration = nixosTests.hydra-db-migration.mig;
+ basic = nixosTests.hydra.hydra-migration;
+ };
+ };
+
+ # Hydra from latest master branch. Contains breaking changes,
+ # so when having an older version, `pkgs.hydra-migration` should be deployed first.
+
+ hydra-unstable = callPackage ./common.nix {
+ version = "2020-09-02";
+ src = fetchFromGitHub {
+ owner = "NixOS";
+ repo = "hydra";
+ rev = "e707990e2d6afab203c7ef1d769d49c564eff151";
+ sha256 = "0iilf953f6s58szzyd1hzc9b2b2yw8lhbsb8xrb08szpfz7ifwqa";
+ };
+ nix = nixFlakes;
+
+ tests = {
+ db-migration = nixosTests.hydra-db-migration.mig;
+ basic = nixosTests.hydra.hydra-unstable;
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/icon-naming-utils/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/icon-naming-utils/default.nix
new file mode 100644
index 000000000000..0905ce484634
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/icon-naming-utils/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchurl, perlPackages, librsvg}:
+
+stdenv.mkDerivation rec {
+ name = "icon-naming-utils-0.8.90";
+
+ src = fetchurl {
+ url = "http://tango.freedesktop.org/releases/${name}.tar.gz";
+ sha256 = "071fj2jm5kydlz02ic5sylhmw6h2p3cgrm3gwdfabinqkqcv4jh4";
+ };
+
+ buildInputs = [ librsvg ] ++ (with perlPackages; [ perl XMLSimple ]);
+
+ postInstall =
+ ''
+ # Add XML::Simple to the runtime search path.
+ substituteInPlace $out/libexec/icon-name-mapping \
+ --replace '/bin/perl' '/bin/perl -I${perlPackages.XMLSimple}/${perlPackages.perl.libPrefix}'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://tango.freedesktop.org/Standard_Icon_Naming_Specification";
+ platforms = with platforms; linux ++ darwin;
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/igprof/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/igprof/default.nix
new file mode 100644
index 000000000000..0780672cc020
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/igprof/default.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchFromGitHub, libunwind, cmake, pcre, gdb}:
+
+stdenv.mkDerivation rec {
+ version = "5.9.16";
+ pname = "igprof";
+
+ src = fetchFromGitHub {
+ owner = "igprof";
+ repo = "igprof";
+ rev = "v${version}";
+ sha256 = "0rx3mv8zdh9bmcpfbzkib3d52skzfr8600gh5gv21wcsh50jnifx";
+ };
+
+ postPatch = ''
+ substituteInPlace src/igprof --replace libigprof.so $out/lib/libigprof.so
+ '';
+
+ buildInputs = [libunwind gdb pcre];
+ nativeBuildInputs = [cmake];
+ CXXFLAGS = ["-fPIC" "-O2" "-w" "-fpermissive"];
+
+ meta = {
+ description = "The Ignominous Profiler";
+
+ longDescription = ''
+ IgProf is a fast and light weight profiler. It correctly handles
+ dynamically loaded shared libraries, threads and sub-processes started by
+ the application. We have used it routinely with large C++ applications
+ consisting of many hundreds of shared libraries and thousands of symbols
+ from millions of source lines of code. It requires no special privileges
+ to run. The performance reports provide full navigable call stacks and
+ can be customised by applying filters. Results from any number of
+ profiling runs can be included. This means you can both dig into the
+ details and see the big picture from combined workloads.
+ '';
+
+ license = stdenv.lib.licenses.gpl2;
+
+ homepage = "https://igprof.org/";
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = with stdenv.lib.maintainers; [ ktf ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/darwin.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/darwin.patch
new file mode 100644
index 000000000000..5458a0d93bff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/darwin.patch
@@ -0,0 +1,15 @@
+diff --git a/config.h.in b/config.h.in
+index 07e6fce..0c57e2a 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -432,8 +432,8 @@
+ # endif
+ # define _GL_EXTERN_INLINE extern
+ #else
+-# define _GL_INLINE static _GL_UNUSED
+-# define _GL_EXTERN_INLINE static _GL_UNUSED
++# define _GL_INLINE static
++# define _GL_EXTERN_INLINE static
+ #endif
+
+ #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/default.nix
new file mode 100644
index 000000000000..c4b5fecca741
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/indent/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, texinfo }:
+
+stdenv.mkDerivation rec {
+ name = "indent-2.2.12";
+
+ src = fetchurl {
+ url = "mirror://gnu/indent/${name}.tar.gz";
+ sha256 = "12xvcd16cwilzglv9h7sgh4h1qqjd1h8s48ji2dla58m4706hzg7";
+ };
+
+ patches = [ ./darwin.patch ];
+
+ buildInputs = [ texinfo ];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang
+ "-Wno-implicit-function-declaration";
+
+ hardeningDisable = [ "format" ];
+
+ meta = {
+ homepage = "https://www.gnu.org/software/indent/";
+ description = "A source code reformatter";
+ license = stdenv.lib.licenses.gpl3Plus;
+ maintainers = [ stdenv.lib.maintainers.mmahut ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/inotify-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/inotify-tools/default.nix
new file mode 100644
index 000000000000..a9d642f48f0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/inotify-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, autoreconfHook, fetchFromGitHub, fetchpatch }:
+
+stdenv.mkDerivation rec {
+ pname = "inotify-tools";
+ version = "3.20.2.2";
+
+ src = fetchFromGitHub {
+ repo = "inotify-tools";
+ owner = "rvoicilas";
+ rev = version;
+ sha256 = "1r12bglkb0bkqff6kgxjm81hk6z20nrxq3m7iv15d4nrqf9pm7s0";
+ };
+
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/inotify-tools/inotify-tools/commit/7ddf45158af0c1e93b02181a45c5b65a0e5bed25.patch";
+ sha256 = "08imqancx8l0bg9q7xaiql1xlalmbfnpjfjshp495sjais0r6gy7";
+ })
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/rvoicilas/inotify-tools/wiki";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ marcweber pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intel-gpu-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intel-gpu-tools/default.nix
new file mode 100644
index 000000000000..19556aeafc01
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intel-gpu-tools/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, pkgconfig, libdrm, libpciaccess, cairo, xorgproto, udev
+, libX11, libXext, libXv, libXrandr, glib, bison, libunwind, python3, kmod
+, procps, utilmacros, gtk-doc, openssl, peg, elfutils
+}:
+
+stdenv.mkDerivation rec {
+ pname = "intel-gpu-tools";
+ version = "1.25";
+
+ src = fetchurl {
+ url = "https://xorg.freedesktop.org/archive/individual/app/igt-gpu-tools-${version}.tar.xz";
+ sha256 = "04fx7xclhick3k7fyk9c4mn8mxzf1253j1r0hrvj9sl40j7lsia0";
+ };
+
+ nativeBuildInputs = [ pkgconfig utilmacros ];
+ buildInputs = [ libdrm libpciaccess cairo xorgproto udev libX11 kmod
+ libXext libXv libXrandr glib bison libunwind python3 procps
+ gtk-doc openssl peg elfutils ];
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=array-bounds" ];
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ preBuild = ''
+ patchShebangs tests
+
+ patchShebangs debugger/system_routine/pre_cpp.py
+ substituteInPlace tools/Makefile.am --replace '$(CAIRO_CFLAGS)' '$(CAIRO_CFLAGS) $(GLIB_CFLAGS)'
+ substituteInPlace tests/Makefile.am --replace '$(CAIRO_CFLAGS)' '$(CAIRO_CFLAGS) $(GLIB_CFLAGS)'
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://01.org/linuxgraphics/";
+ description = "Tools for development and testing of the Intel DRM driver";
+ license = licenses.mit;
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intltool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
new file mode 100644
index 000000000000..20f880938c66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, fetchpatch, gettext, perlPackages, buildPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "intltool";
+ version = "0.51.0";
+
+ src = fetchurl {
+ url = "https://launchpad.net/intltool/trunk/${version}/+download/${pname}-${version}.tar.gz";
+ sha256 = "1karx4sb7bnm2j67q0q74hspkfn6lqprpy5r99vkn5bb36a4viv7";
+ };
+
+ # fix "unescaped left brace" errors when using intltool in some cases
+ patches = [(fetchpatch {
+ name = "perl5.26-regex-fixes.patch";
+ url = [
+ "https://sources.debian.org/data/main/i/intltool/0.51.0-5/debian/patches/perl5.26-regex-fixes.patch"
+ "https://src.fedoraproject.org/rpms/intltool/raw/d8d2ef29fb122a42a6b6678eb1ec97ae56902af2/f/intltool-perl5.26-regex-fixes.patch"
+ ];
+ sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45";
+ })];
+
+ nativeBuildInputs = with perlPackages; [ perl XMLParser ];
+ propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]);
+
+ postInstall = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ for f in $out/bin/*; do
+ substituteInPlace $f --replace "${buildPackages.perl}" "${perlPackages.perl}"
+ done
+ '';
+ meta = with stdenv.lib; {
+ description = "Translation helper tool";
+ homepage = "https://launchpad.net/intltool/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ raskin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/iozone/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/iozone/default.nix
new file mode 100644
index 000000000000..e6beeca1d727
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/iozone/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, gnuplot }:
+
+let
+ target = if stdenv.hostPlatform.system == "i686-linux" then
+ "linux"
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ "linux-AMD64"
+ else if stdenv.hostPlatform.system == "x86_64-darwin" then
+ "macosx"
+ else if stdenv.hostPlatform.system == "aarch64-linux" then
+ "linux-arm"
+ else throw "Platform ${stdenv.hostPlatform.system} not yet supported.";
+in
+
+stdenv.mkDerivation rec {
+ name = "iozone-3.471";
+
+ src = fetchurl {
+ url = "http://www.iozone.org/src/current/iozone3_471.tar";
+ sha256 = "0w63b3d4ws1sm52lpdd08sl7n4ay438dl3wy0q9la12iq81rglid";
+ };
+
+ license = fetchurl {
+ url = "http://www.iozone.org/docs/Iozone_License.txt";
+ sha256 = "1309sl1rqm8p9gll3z8zfygr2pmbcvzw5byf5ba8y12avk735zrv";
+ };
+
+ preBuild = "pushd src/current";
+ postBuild = "popd";
+
+ buildFlags = target;
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ mkdir -p $out/{bin,share/doc,libexec,share/man/man1}
+ install docs/iozone.1 $out/share/man/man1/
+ install docs/Iozone_ps.gz $out/share/doc/
+ install -s src/current/{iozone,fileop,pit_server} $out/bin/
+ install src/current/{gnu3d.dem,Generate_Graphs,gengnuplot.sh} $out/libexec/
+ ln -s $out/libexec/Generate_Graphs $out/bin/iozone_generate_graphs
+ # License copy is mandated by the license, but it's not in the tarball.
+ install ${license} $out/share/doc/Iozone_License.txt
+ '';
+
+ preFixup = ''
+ sed -i "1i#! $shell" $out/libexec/Generate_Graphs
+ substituteInPlace $out/libexec/Generate_Graphs \
+ --replace ./gengnuplot.sh $out/libexec/gengnuplot.sh \
+ --replace 'gnuplot ' "${gnuplot}/bin/gnuplot " \
+ --replace gnu3d.dem $out/libexec/gnu3d.dem
+ '';
+
+ meta = {
+ description = "IOzone Filesystem Benchmark";
+ homepage = "http://www.iozone.org/";
+ license = stdenv.lib.licenses.unfreeRedistributable;
+ platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+ maintainers = with stdenv.lib.maintainers; [ Baughn makefu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
new file mode 100644
index 000000000000..1559510cd9f1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
@@ -0,0 +1,321 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..d9d39e5
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,315 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.12.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "602d785912f476e480434627e8732e6766b760c045bbf897d9dfaa9f4fbd399c"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler32"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "backtrace"
++version = "0.3.49"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
++dependencies = [
++ "addr2line",
++ "cfg-if",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[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 = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++
++[[package]]
++name = "exitfailure"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ff5bd832af37f366c6c194d813a11cd90ac484f124f079294f28e357ae40515"
++dependencies = [
++ "failure",
++]
++
++[[package]]
++name = "failure"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
++dependencies = [
++ "backtrace",
++ "failure_derive",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
++]
++
++[[package]]
++name = "gimli"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itm"
++version = "0.4.0"
++source = "git+https://github.com/rust-embedded/itm#5dd476d03de0738062a876fd3845900ab04833a4"
++dependencies = [
++ "byteorder",
++ "either",
++ "thiserror",
++]
++
++[[package]]
++name = "itm-tools"
++version = "0.1.0"
++dependencies = [
++ "clap",
++ "exitfailure",
++ "failure",
++ "itm",
++ "rustc-demangle",
++ "xmas-elf",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
++name = "object"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "syn"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[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 = "xmas-elf"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22678df5df766e8d1e5d609da69f0c3132d794edf6ab5e75e7abcd2270d4cf58"
++dependencies = [
++ "zero",
++]
++
++[[package]]
++name = "zero"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f1bc8a6b2005884962297587045002d8cfb8dcec9db332f4ca216ddc5de82c5"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
new file mode 100644
index 000000000000..6fb256951115
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "itm-tools";
+ version = "unstable-2019-11-15";
+
+ src = fetchFromGitHub {
+ owner = "japaric";
+ repo = pname;
+ rev = "e94155e44019d893ac8e6dab51cc282d344ab700";
+ sha256 = "19xkjym0i7y52cfhvis49c59nzvgw4906cd8bkz8ka38mbgfqgiy";
+ };
+
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ cargoSha256 = "0rl2ph5igwjl7rwpwcf6afnxly5av7cd6va6wn82lxm606giyq75";
+
+ nativeBuildInputs = [ pkg-config ];
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Tools for analyzing ITM traces";
+ homepage = "https://github.com/japaric/itm-tools";
+ license = with licenses; [ asl20 mit ];
+ maintainers = with maintainers; [ hh sb0 ];
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itstool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itstool/default.nix
new file mode 100644
index 000000000000..d46256f039aa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/itstool/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchurl, python3 }:
+
+stdenv.mkDerivation rec {
+ name = "itstool-2.0.6";
+
+ src = fetchurl {
+ url = "http://files.itstool.org/itstool/${name}.tar.bz2";
+ sha256 = "1acjgf8zlyk7qckdk19iqaca4jcmywd7vxjbcs1mm6kaf8icqcv2";
+ };
+
+ pythonPath = [ python3.pkgs.libxml2 ];
+ buildInputs = [ python3 python3.pkgs.libxml2 ];
+ nativeBuildInputs = [ python3.pkgs.wrapPython ];
+
+ postFixup = ''
+ wrapPythonPrograms
+ '';
+
+ meta = {
+ homepage = "http://itstool.org/";
+ description = "XML to PO and back again";
+ license = stdenv.lib.licenses.gpl3Plus;
+ platforms = stdenv.lib.platforms.all;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
new file mode 100644
index 000000000000..6ed66c8d3cc0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/default.nix
@@ -0,0 +1,52 @@
+{ autoconf, fetchurl, makedepend, perl, python, stdenv, unzip, zip }:
+
+stdenv.mkDerivation rec {
+ name = "jscoverage-0.5.1";
+
+ src = fetchurl {
+ url = "https://siliconforks.com/jscoverage/download/${name}.tar.bz2";
+ sha256 = "c45f051cec18c10352f15f9844f47e37e8d121d5fd16680e2dd0f3b4420eb7f4";
+ };
+
+ patches = [
+ ./jsfalse_to_null.patch
+ ];
+
+ buildInputs = [ autoconf makedepend perl python unzip zip ];
+
+ # It works without MOZ_FIX_LINK_PATHS, circumventing an impurity
+ # issue. Maybe we could kick js/ (spidermonkey) completely and
+ # instead use our spidermonkey via nix.
+ preConfigure = ''
+ sed -i 's/^MOZ_FIX_LINK_PATHS=.*$/MOZ_FIX_LINK_PATHS=""/' ./js/configure
+ '';
+
+ meta = {
+ description = "Code coverage for JavaScript";
+
+ longDescription = ''
+ JSCoverage is a tool that measures code coverage for JavaScript
+ programs.
+
+ Code coverage statistics show which lines of a program have been
+ executed (and which have been missed). This information is useful
+ for constructing comprehensive test suites (hence, it is often
+ called test coverage).
+
+ JSCoverage works by instrumenting the JavaScript code used in web
+ pages. Code coverage statistics are collected while the
+ instrumented JavaScript code is executed in a web browser.
+
+ JSCoverage supports the complete language syntax described in the
+ ECMAScript Language Specification (ECMA-262, 3rd
+ edition). JSCoverage works with any modern standards-compliant web
+ browser - including Internet Explorer (IE 6, 7, and 8), Firefox,
+ Opera, Safari, and Google Chrome - on Microsoft Windows and
+ GNU/Linux.
+ '';
+
+ homepage = "http://siliconforks.com/jscoverage/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/jsfalse_to_null.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/jsfalse_to_null.patch
new file mode 100644
index 000000000000..b49594964e1f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/jscoverage/jsfalse_to_null.patch
@@ -0,0 +1,26 @@
+diff --git i/js/jsstr.cpp w/js/jsstr.cpp
+index e662bf1..b18597e 100644
+--- i/js/jsstr.cpp
++++ w/js/jsstr.cpp
+@@ -3040,7 +3040,7 @@ js_InitStringClass(JSContext *cx, JSObject *obj)
+ JSVAL_VOID, NULL, NULL,
+ JSPROP_READONLY | JSPROP_PERMANENT | JSPROP_SHARED, 0, 0,
+ NULL)) {
+- return JS_FALSE;
++ return NULL;
+ }
+
+ return proto;
+diff --git i/js/jsxml.cpp w/js/jsxml.cpp
+index 5621ede..e00c97d 100644
+--- i/js/jsxml.cpp
++++ w/js/jsxml.cpp
+@@ -303,7 +303,7 @@ NewXMLNamespace(JSContext *cx, JSString *prefix, JSString *uri, JSBool declared)
+
+ obj = js_NewObject(cx, &js_NamespaceClass.base, NULL, NULL);
+ if (!obj)
+- return JS_FALSE;
++ return NULL;
+ JS_ASSERT(JSVAL_IS_VOID(obj->fslots[JSSLOT_PREFIX]));
+ JS_ASSERT(JSVAL_IS_VOID(obj->fslots[JSSLOT_URI]));
+ JS_ASSERT(JSVAL_IS_VOID(obj->fslots[JSSLOT_DECLARED]));
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix
new file mode 100644
index 000000000000..fa413511dc01
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kconfig-frontends/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, pkgconfig, bison, flex, gperf, ncurses, pythonPackages }:
+
+stdenv.mkDerivation rec {
+ basename = "kconfig-frontends";
+ version = "4.11.0.1";
+ name = "${basename}-${version}";
+
+ src = fetchurl {
+ sha256 = "1xircdw3k7aaz29snf96q2fby1cs48bidz5l1kkj0a5gbivw31i3";
+ url = "http://ymorin.is-a-geek.org/download/${basename}/${name}.tar.xz";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ bison flex gperf ncurses pythonPackages.python pythonPackages.wrapPython ];
+
+ configureFlags = [
+ "--enable-frontends=conf,mconf,nconf"
+ ];
+
+ postInstall = ''
+ wrapPythonPrograms
+ '';
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=format-security";
+
+ meta = with stdenv.lib; {
+ description = "Out of Linux tree packaging of the kconfig infrastructure";
+ longDescription = ''
+ Configuration language and system for the Linux kernel and other
+ projects. Features simple syntax and grammar, limited yet adequate option
+ types, simple organization of options, and direct and reverse
+ dependencies.
+ '';
+ homepage = "http://ymorin.is-a-geek.org/projects/kconfig-frontends";
+ license = licenses.gpl2;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ mbe ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
new file mode 100644
index 000000000000..6b7369a0558f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kdbg/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, cmake, extra-cmake-modules, qt5,
+ ki18n, kconfig, kiconthemes, kxmlgui, kwindowsystem,
+ qtbase, makeWrapper,
+}:
+
+stdenv.mkDerivation rec {
+ pname = "kdbg";
+ version = "3.0.1";
+ src = fetchurl {
+ url = "mirror://sourceforge/kdbg/${version}/${pname}-${version}.tar.gz";
+ sha256 = "1gax6xll8svmngw0z1rzhd77xysv01zp0i68x4n5pq0xgh7gi7a4";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper ];
+ buildInputs = [ qt5.qtbase ki18n kconfig kiconthemes kxmlgui kwindowsystem ];
+
+ enableParallelBuilding = true;
+
+
+ postInstall = ''
+ wrapProgram $out/bin/kdbg --prefix QT_PLUGIN_PATH : ${qtbase}/${qtbase.qtPluginPrefix}
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.kdbg.org/";
+ description = ''
+ A graphical user interface to gdb, the GNU debugger. It provides an
+ intuitive interface for setting breakpoints, inspecting variables, and
+ stepping through code.
+ '';
+ license = licenses.gpl2;
+ maintainers = [ maintainers.catern ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix
new file mode 100644
index 000000000000..354f77d0fb97
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/6.x.nix
@@ -0,0 +1,63 @@
+{ elk6Version
+, enableUnfree ? true
+, stdenv
+, makeWrapper
+, fetchurl
+, nodejs-10_x
+, coreutils
+, which
+}:
+
+with stdenv.lib;
+let
+ nodejs = nodejs-10_x;
+ inherit (builtins) elemAt;
+ info = splitString "-" stdenv.hostPlatform.system;
+ arch = elemAt info 0;
+ plat = elemAt info 1;
+ shas =
+ if enableUnfree
+ then {
+ x86_64-linux = "1xwklhqxk5rmdrgy2simwvijzq29kyq5w2w3hy53xh2i1zlnyvq3";
+ x86_64-darwin = "1qpdn28mrpggd55khzqqld6r89l0hb870rigxcw2i8p2yx3jv106";
+ }
+ else {
+ x86_64-linux = "1wpnwal2rq5v2bsp5qil9j6dplif7ql5394sy4ia5ghp2fzifxmf";
+ x86_64-darwin = "12z8i0wbw10c097glbpdy350p0h3957433f51qfx2p0ghgkzkhzv";
+ };
+
+in stdenv.mkDerivation rec {
+ name = "kibana-${optionalString (!enableUnfree) "oss-"}${version}";
+ version = elk6Version;
+
+ src = fetchurl {
+ url = "https://artifacts.elastic.co/downloads/kibana/${name}-${plat}-${arch}.tar.gz";
+ sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
+ };
+
+ patches = [
+ # Kibana specifies it specifically needs nodejs 10.15.2 but nodejs in nixpkgs is at 10.15.3.
+ # The <nixpkgs/nixos/tests/elk.nix> test succeeds with this newer version so lets just
+ # disable the version check.
+ ./disable-nodejs-version-check.patch
+ ];
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/kibana $out/bin
+ mv * $out/libexec/kibana/
+ rm -r $out/libexec/kibana/node
+ makeWrapper $out/libexec/kibana/bin/kibana $out/bin/kibana \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ nodejs coreutils which ]}"
+ sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
+ '';
+
+ meta = {
+ description = "Visualize logs and time-stamped data";
+ homepage = "http://www.elasticsearch.org/overview/kibana";
+ license = if enableUnfree then licenses.elastic else licenses.asl20;
+ maintainers = with maintainers; [ offline basvandijk ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix
new file mode 100644
index 000000000000..dc3beb9866c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/7.x.nix
@@ -0,0 +1,63 @@
+{ elk7Version
+, enableUnfree ? true
+, stdenv
+, makeWrapper
+, fetchurl
+, nodejs-10_x
+, coreutils
+, which
+}:
+
+with stdenv.lib;
+let
+ nodejs = nodejs-10_x;
+ inherit (builtins) elemAt;
+ info = splitString "-" stdenv.hostPlatform.system;
+ arch = elemAt info 0;
+ plat = elemAt info 1;
+ shas =
+ if enableUnfree
+ then {
+ x86_64-linux = "1wq4fc2fifkg1qz7nxdfb4yi2biay8cgdz7kl5k0p37sxn0sbkja";
+ x86_64-darwin = "06346kj7bv49py49pmmnmh8m24322m88v1af19909pj9cxgd0p6v";
+ }
+ else {
+ x86_64-linux = "0ygpmcm6wdcnvw8azwqc5257lyic7yw31rqvm2pw3afhpha62lpj";
+ x86_64-darwin = "0xy81g0bhxp47p29kkkh5llfzqkzqzr5dk50ap2hy0hjw33ld6g1";
+ };
+
+in stdenv.mkDerivation rec {
+ name = "kibana-${optionalString (!enableUnfree) "oss-"}${version}";
+ version = elk7Version;
+
+ src = fetchurl {
+ url = "https://artifacts.elastic.co/downloads/kibana/${name}-${plat}-${arch}.tar.gz";
+ sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
+ };
+
+ patches = [
+ # Kibana specifies it specifically needs nodejs 10.15.2 but nodejs in nixpkgs is at 10.15.3.
+ # The <nixpkgs/nixos/tests/elk.nix> test succeeds with this newer version so lets just
+ # disable the version check.
+ ./disable-nodejs-version-check-7.patch
+ ];
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/kibana $out/bin
+ mv * $out/libexec/kibana/
+ rm -r $out/libexec/kibana/node
+ makeWrapper $out/libexec/kibana/bin/kibana $out/bin/kibana \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ nodejs coreutils which ]}"
+ sed -i 's@NODE=.*@NODE=${nodejs}/bin/node@' $out/libexec/kibana/bin/kibana
+ '';
+
+ meta = {
+ description = "Visualize logs and time-stamped data";
+ homepage = "http://www.elasticsearch.org/overview/kibana";
+ license = if enableUnfree then licenses.elastic else licenses.asl20;
+ maintainers = with maintainers; [ offline basvandijk ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check-7.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check-7.patch
new file mode 100644
index 000000000000..ef4c207764c1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check-7.patch
@@ -0,0 +1,19 @@
+diff --git a/src/setup_node_env/node_version_validator.js b/src/setup_node_env/node_version_validator.js
+index 3f611e5a..f5c60c85 100644
+--- a/src/setup_node_env/node_version_validator.js
++++ b/src/setup_node_env/node_version_validator.js
+@@ -25,11 +25,11 @@ var pkg = require('../../package.json'); // Note: This is written in ES5 so we c
+ var currentVersion = process && process.version || null;
+ var rawRequiredVersion = pkg && pkg.engines && pkg.engines.node || null;
+ var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion;
+-var isVersionValid = !!currentVersion && !!requiredVersion && currentVersion === requiredVersion; // Validates current the NodeJS version compatibility when Kibana starts.
++var isVersionValid = !!currentVersion && !!requiredVersion; // Validates current the NodeJS version compatibility when Kibana starts.
+
+ if (!isVersionValid) {
+ var errorMessage = 'Kibana does not support the current Node.js version ' + currentVersion + '. Please use Node.js ' + requiredVersion + '.'; // Actions to apply when validation fails: error report + exit.
+
+ console.error(errorMessage);
+ process.exit(1);
+-}
+\ No newline at end of file
++}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch
new file mode 100644
index 000000000000..12a81566a72c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/kibana/disable-nodejs-version-check.patch
@@ -0,0 +1,19 @@
+diff -Naur a/src/setup_node_env/node_version_validator.js b/src/setup_node_env/node_version_validator.js
+--- a/src/setup_node_env/node_version_validator.js 2018-11-16 03:28:42.000000000 +0100
++++ b/src/setup_node_env/node_version_validator.js 2018-12-01 12:19:48.238337176 +0100
+@@ -26,7 +26,7 @@
+ var currentVersion = process && process.version || null;
+ var rawRequiredVersion = pkg && pkg.engines && pkg.engines.node || null;
+ var requiredVersion = rawRequiredVersion ? 'v' + rawRequiredVersion : rawRequiredVersion;
+-var isVersionValid = !!currentVersion && !!requiredVersion && currentVersion === requiredVersion;
++var isVersionValid = !!currentVersion && !!requiredVersion;
+
+ // Validates current the NodeJS version compatibility when Kibana starts.
+ if (!isVersionValid) {
+@@ -35,4 +35,4 @@
+ // Actions to apply when validation fails: error report + exit.
+ console.error(errorMessage);
+ process.exit(1);
+-}
+\ No newline at end of file
++}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/default.nix
new file mode 100644
index 000000000000..199c6504f392
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/default.nix
@@ -0,0 +1,41 @@
+{stdenv, fetchurl, m4, perl}:
+
+# 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 {
+ name = "libtool-1.5.26";
+
+ src = fetchurl {
+ url = "mirror://gnu/libtool/${name}.tar.gz";
+ sha256 = "029ggq5kri1gjn6nfqmgw4w920gyfzscjjxbsxxidal5zqsawd8w";
+ };
+
+ nativeBuildInputs = [m4];
+ buildInputs = [perl];
+
+ # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ meta = {
+ description = "Generic library support script";
+
+ longDescription = ''
+ GNU libtool is a generic library support script. Libtool hides
+ the complexity of using shared libraries behind a consistent,
+ portable interface.
+
+ To use libtool, add the new generic library building commands to
+ your Makefile, Makefile.in, or Makefile.am. See the
+ documentation for details.
+ '';
+
+ homepage = "https://www.gnu.org/software/libtool/";
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix
new file mode 100644
index 000000000000..fbe49dc68b2a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libtool/libtool2.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, m4, perl, help2man
+}:
+
+stdenv.mkDerivation rec {
+ pname = "libtool";
+ version = "2.4.6";
+
+ src = fetchurl {
+ url = "mirror://gnu/libtool/${pname}-${version}.tar.gz";
+ sha256 = "1qq61k6lp1fp75xs398yzi6wvbx232l7xbyn3p13cnh27mflvgg3";
+ };
+
+ outputs = [ "out" "lib" ];
+
+ nativeBuildInputs = [ perl help2man m4 ];
+ propagatedBuildInputs = [ m4 ];
+
+ # Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
+ # "fixed" path in generated files!
+ dontPatchShebangs = true;
+
+ # XXX: The GNU ld wrapper does all sorts of nasty things wrt. RPATH, which
+ # leads to the failure of a number of tests.
+ doCheck = false;
+ doInstallCheck = false;
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "GNU Libtool, a generic library support script";
+ longDescription = ''
+ GNU libtool is a generic library support script. Libtool hides
+ the complexity of using shared libraries behind a consistent,
+ portable interface.
+
+ To use libtool, add the new generic library building commands to
+ your Makefile, Makefile.in, or Makefile.am. See the
+ documentation for details.
+ '';
+ homepage = "https://www.gnu.org/software/libtool/";
+ license = licenses.gpl2Plus;
+ maintainers = [ ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix
new file mode 100644
index 000000000000..59bbb99bd46e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/libwhich/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "libwhich";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "vtjnash";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0s0pqai61jszmi495k621rdlf288ij67adkz72hwqqarqp54idhb";
+ };
+
+ installPhase = ''
+ install -Dm755 -t $out/bin libwhich
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Like `which`, for dynamic libraries";
+ homepage = "https://github.com/vtjnash/libwhich";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
new file mode 100644
index 000000000000..eeb2102bdf0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "linuxkit";
+ version = "0.8";
+
+ goPackagePath = "github.com/linuxkit/linuxkit";
+
+ src = fetchFromGitHub {
+ owner = "linuxkit";
+ repo = "linuxkit";
+ rev = "v${version}";
+ sha256 = "15jj60k8wz9cahjbdscnwyyfb1k1grjh7yrilb1cj4r8mby4sp2g";
+ };
+
+ subPackages = [ "src/cmd/linuxkit" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/src/cmd/linuxkit/version.GitCommit=${src.rev} -X ${goPackagePath}/src/cmd/linuxkit/version.Version=${version}" ];
+
+ meta = with lib; {
+ description = "A toolkit for building secure, portable and lean operating systems for containers";
+ license = licenses.asl20;
+ homepage = "https://github.com/linuxkit/linuxkit";
+ maintainers = [ maintainers.nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lit/default.nix
new file mode 100644
index 000000000000..7c7549e3844c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lit/default.nix
@@ -0,0 +1,25 @@
+{ lib, python3 }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "lit";
+ version = "0.10.0";
+
+ src = python3.pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "13s8v9s2f284fnh47xdyc75gq2i9pndl39q8v4wl7v7lwri2hv8r";
+ };
+
+ passthru = {
+ python = python3;
+ };
+
+ # Non-standard test suite. Needs custom checkPhase.
+ doCheck = false;
+
+ meta = {
+ description = "Portable tool for executing LLVM and Clang style test suites";
+ homepage = "http://llvm.org/docs/CommandGuide/lit.html";
+ license = lib.licenses.ncsa;
+ maintainers = with lib.maintainers; [ dtzWill ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/loccount/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/loccount/default.nix
new file mode 100644
index 000000000000..ace34f350599
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/loccount/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoPackage, fetchFromGitLab }:
+buildGoPackage rec {
+ pname = "loccount";
+ version = "1.2";
+
+ goPackagePath = "gitlab.com/esr/loccount";
+ excludedPackages = "tests";
+
+ src = fetchFromGitLab {
+ owner = "esr";
+ repo = "loccount";
+ rev = version;
+ sha256 = "18z7ai7wy2k9yd3w65d37apfqs3h9bc2c15y7v1bydppi44zfsdk";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Re-implementation of sloccount in Go";
+ longDescription = ''
+ loccount is a re-implementation of David A. Wheeler's sloccount tool
+ in Go. It is faster and handles more different languages. Because
+ it's one source file in Go, it is easier to maintain and extend than the
+ multi-file, multi-language implementation of the original.
+
+ The algorithms are largely unchanged and can be expected to produce
+ identical numbers for languages supported by both tools. Python is
+ an exception; loccount corrects buggy counting of single-quote multiline
+ literals in sloccount 2.26.
+ '';
+ homepage="https://gitlab.com/esr/loccount";
+ downloadPage="https://gitlab.com/esr/loccount/tree/master";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ calvertvl ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/default.nix
new file mode 100644
index 000000000000..274577c4a4c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, buildPackages, ncurses }:
+
+let dialect = with stdenv.lib; last (splitString "-" stdenv.hostPlatform.system); in
+
+stdenv.mkDerivation rec {
+ pname = "lsof";
+ version = "4.93.2";
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ buildInputs = [ ncurses ];
+
+ src = fetchFromGitHub {
+ owner = "lsof-org";
+ repo = "lsof";
+ rev = version;
+ sha256 = "1gd6r0nv8xz76pmvk52dgmfl0xjvkxl0s51b4jk4a0lphw3393yv";
+ };
+
+ patches = [ ./no-build-info.patch ];
+
+ postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+ substituteInPlace dialects/linux/dlsof.h --replace "defined(__UCLIBC__)" 1
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ sed -i 's|lcurses|lncurses|g' Configure
+ '';
+
+ # Stop build scripts from searching global include paths
+ LSOF_INCLUDE = "${stdenv.lib.getDev stdenv.cc.libc}/include";
+ configurePhase = "LINUX_CONF_CC=$CC_FOR_BUILD LSOF_CC=$CC LSOF_AR=\"$AR cr\" LSOF_RANLIB=$RANLIB ./Configure -n ${dialect}";
+ preBuild = ''
+ for filepath in $(find dialects/${dialect} -type f); do
+ sed -i "s,/usr/include,$LSOF_INCLUDE,g" $filepath
+ done
+ '';
+
+ installPhase = ''
+ # Fix references from man page https://github.com/lsof-org/lsof/issues/66
+ substituteInPlace Lsof.8 \
+ --replace ".so ./00DIALECTS" "" \
+ --replace ".so ./version" ".ds VN ${version}"
+ mkdir -p $out/bin $out/man/man8
+ cp Lsof.8 $out/man/man8/lsof.8
+ cp lsof $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/lsof-org/lsof";
+ description = "A tool to list open files";
+ longDescription = ''
+ List open files. Can show what process has opened some file,
+ socket (IPv6/IPv4/UNIX local), or partition (by opening a file
+ from it).
+ '';
+ maintainers = [ maintainers.dezgeg ];
+ platforms = platforms.unix;
+ license = licenses.purdueBsd;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/no-build-info.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/no-build-info.patch
new file mode 100644
index 000000000000..cf785e248f2a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lsof/no-build-info.patch
@@ -0,0 +1,43 @@
+diff -ru -x '*~' lsof_4.91_src-orig/usage.c lsof_4.91_src/usage.c
+--- lsof_4.91_src-orig/usage.c 2018-02-14 15:20:32.000000000 +0100
++++ lsof_4.91_src/usage.c 2018-10-08 21:57:45.718560869 +0200
+@@ -930,26 +930,6 @@
+ (void) fprintf(stderr, " configuration info: %s\n", cp);
+ #endif /* defined(LSOF_CINFO) */
+
+- if ((cp = isnullstr(LSOF_CCDATE)))
+- (void) fprintf(stderr, " constructed: %s\n", cp);
+- cp = isnullstr(LSOF_HOST);
+- if (!(cp1 = isnullstr(LSOF_LOGNAME)))
+- cp1 = isnullstr(LSOF_USER);
+- if (cp || cp1) {
+- if (cp && cp1)
+- cp2 = "by and on";
+- else if (cp)
+- cp2 = "on";
+- else
+- cp2 = "by";
+- (void) fprintf(stderr, " constructed %s: %s%s%s\n",
+- cp2,
+- cp1 ? cp1 : "",
+- (cp && cp1) ? "@" : "",
+- cp ? cp : ""
+- );
+- }
+-
+ #if defined(LSOF_BLDCMT)
+ if ((cp = isnullstr(LSOF_BLDCMT)))
+ (void) fprintf(stderr, " builder's comment: %s\n", cp);
+@@ -959,12 +939,8 @@
+ (void) fprintf(stderr, " compiler: %s\n", cp);
+ if ((cp = isnullstr(LSOF_CCV)))
+ (void) fprintf(stderr, " compiler version: %s\n", cp);
+- if ((cp = isnullstr(LSOF_CCFLAGS)))
+- (void) fprintf(stderr, " compiler flags: %s\n", cp);
+ if ((cp = isnullstr(LSOF_LDFLAGS)))
+ (void) fprintf(stderr, " loader flags: %s\n", cp);
+- if ((cp = isnullstr(LSOF_SYSINFO)))
+- (void) fprintf(stderr, " system info: %s\n", cp);
+ (void) report_SECURITY(" ", ".\n");
+ (void) report_WARNDEVACCESS(" ", "are", ".\n");
+ (void) report_HASKERNIDCK(" K", "is");
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix
new file mode 100644
index 000000000000..d88d9d7a7be5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ltrace/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, elfutils, libunwind }:
+
+stdenv.mkDerivation {
+ name = "ltrace-0.7.3";
+
+ src = fetchurl {
+ url = "mirror://debian/pool/main/l/ltrace/ltrace_0.7.3.orig.tar.bz2";
+ sha256 = "00wmbdghqbz6x95m1mcdd3wd46l6hgcr4wggdp049dbifh3qqvqf";
+ };
+
+ buildInputs = [ elfutils libunwind ];
+
+ prePatch = let
+ debian = fetchurl {
+ url = "mirror://debian/pool/main/l/ltrace/ltrace_0.7.3-6.debian.tar.xz";
+ sha256 = "0xc4pfd8qw53crvdxr29iwl8na53zmknca082kziwpvlzsick4kp";
+ };
+ in ''
+ tar xf '${debian}'
+ patches="$patches $(cat debian/patches/series | sed 's|^|debian/patches/|')"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Library call tracer";
+ homepage = "https://www.ltrace.org/";
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ license = licenses.gpl2;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix
new file mode 100644
index 000000000000..03e370aeeb4b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-tools/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, pkgconfig, popt, libuuid, liburcu, lttng-ust, kmod, libxml2 }:
+
+stdenv.mkDerivation rec {
+ pname = "lttng-tools";
+ version = "2.11.0";
+
+ src = fetchurl {
+ url = "https://lttng.org/files/lttng-tools/${pname}-${version}.tar.bz2";
+ sha256 = "1g0g7ypxvc7wd5x4d4ixmfgl9yk0lxax3ymm95hcjwxn5p497r6w";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ popt libuuid liburcu lttng-ust libxml2 kmod ];
+
+ meta = with stdenv.lib; {
+ description = "Tracing tools (kernel + user space) for Linux";
+ homepage = "https://lttng.org/";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-ust/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-ust/default.nix
new file mode 100644
index 000000000000..1b59045c6fd2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, liburcu, python }:
+
+# NOTE:
+# ./configure ...
+# [...]
+# LTTng-UST will be built with the following options:
+#
+# Java support (JNI): Disabled
+# sdt.h integration: Disabled
+# [...]
+#
+# Debian builds with std.h (systemtap).
+
+stdenv.mkDerivation rec {
+ pname = "lttng-ust";
+ version = "2.10.5";
+
+ src = fetchurl {
+ url = "https://lttng.org/files/lttng-ust/${pname}-${version}.tar.bz2";
+ sha256 = "0ddwk0nl28bkv2xb78gz16a2bvlpfbjmzwfbgwf5p1cq46dyvy86";
+ };
+
+ buildInputs = [ python ];
+
+ preConfigure = ''
+ patchShebangs .
+ '';
+
+ propagatedBuildInputs = [ liburcu ];
+
+ meta = with stdenv.lib; {
+ description = "LTTng Userspace Tracer libraries";
+ homepage = "https://lttng.org/";
+ license = licenses.lgpl21Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttv/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttv/default.nix
new file mode 100644
index 000000000000..abcc476d5947
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/lttv/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, glib, gtk2, popt, babeltrace }:
+
+stdenv.mkDerivation rec {
+ name = "lttv-1.5";
+
+ src = fetchurl {
+ url = "https://lttng.org/files/packages/${name}.tar.bz2";
+ sha256 = "1faldxnh9dld5k0vxckwpqw241ya1r2zv286l6rpgqr500zqw7r1";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib gtk2 popt babeltrace ];
+
+ meta = with stdenv.lib; {
+ description = "Graphical trace viewer for LTTng trace files";
+ homepage = "https://lttng.org/";
+ # liblttvtraceread (ltt/ directory) is distributed under the GNU LGPL v2.1.
+ # The rest of the LTTV package is distributed under the GNU GPL v2.
+ license = with licenses; [ gpl2 lgpl21 ];
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch
new file mode 100644
index 000000000000..4ba883f01130
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/darwin-3.1.3.patch
@@ -0,0 +1,24 @@
+diff --git a/src/luarocks/core/cfg.lua b/src/luarocks/core/cfg.lua
+index c5af5a2..1949fdc 100644
+--- a/src/luarocks/core/cfg.lua
++++ b/src/luarocks/core/cfg.lua
+@@ -425,7 +425,7 @@ local function make_defaults(lua_version, target_cpu, platforms, home)
+ defaults.external_lib_extension = "dylib"
+ defaults.arch = "macosx-"..target_cpu
+ defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load"
+- local version = util.popen_read("sw_vers -productVersion")
++ local version = os.getenv("MACOSX_DEPLOYMENT_TARGET") or "10.12"
+ version = tonumber(version and version:match("^[^.]+%.([^.]+)")) or 3
+ if version >= 10 then
+ version = 8
+@@ -434,8 +434,8 @@ local function make_defaults(lua_version, target_cpu, platforms, home)
+ else
+ defaults.gcc_rpath = false
+ end
+- defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." gcc"
+- defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." gcc"
++ defaults.variables.CC = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." clang"
++ defaults.variables.LD = "env MACOSX_DEPLOYMENT_TARGET=10."..version.." clang"
+ defaults.web_browser = "open"
+ end
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix
new file mode 100644
index 000000000000..fa19b2494076
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.nix
@@ -0,0 +1,74 @@
+{stdenv, fetchFromGitHub
+, curl, makeWrapper, which, unzip
+, lua
+# for 'luarocks pack'
+, zip
+# some packages need to be compiled with cmake
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+ pname = "luarocks";
+ version = "3.2.1";
+
+ src = fetchFromGitHub {
+ owner = "luarocks";
+ repo = "luarocks";
+ rev = "v${version}";
+ sha256 = "0viiafmb8binksda79ah828q1dfnb6jsqlk7vyndl2xvx9yfn4y2";
+ };
+
+ patches = [ ./darwin-3.1.3.patch ];
+ preConfigure = ''
+ lua -e "" || {
+ luajit -e "" && {
+ export LUA_SUFFIX=jit
+ configureFlags="$configureFlags --lua-suffix=$LUA_SUFFIX"
+ }
+ }
+ lua_inc="$(echo "${lua}/include"/*/)"
+ if test -n "$lua_inc"; then
+ configureFlags="$configureFlags --with-lua-include=$lua_inc"
+ fi
+ '';
+
+ buildInputs = [
+ lua curl makeWrapper which
+ ];
+
+ postInstall = ''
+ sed -e "1s@.*@#! ${lua}/bin/lua$LUA_SUFFIX@" -i "$out"/bin/*
+ for i in "$out"/bin/*; do
+ test -L "$i" || {
+ wrapProgram "$i" \
+ --suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?.lua" \
+ --suffix LUA_PATH ";" "$(echo "$out"/share/lua/*/)?/init.lua" \
+ --suffix LUA_CPATH ";" "$(echo "$out"/lib/lua/*/)?.so" \
+ --suffix LUA_CPATH ";" "$(echo "$out"/share/lua/*/)?/init.lua"
+ }
+ done
+ '';
+
+ propagatedBuildInputs = [ zip unzip cmake ];
+
+ # unpack hook for src.rock and rockspec files
+ setupHook = ./setup-hook.sh;
+
+ # cmake is just to compile packages with "cmake" buildType, not luarocks itself
+ dontUseCmakeConfigure = true;
+
+ shellHook = ''
+ export PATH="src/bin:''${PATH:-}"
+ export LUA_PATH="src/?.lua;''${LUA_PATH:-}"
+ '';
+
+ meta = with stdenv.lib; {
+ inherit version;
+ description = ''A package manager for Lua'';
+ license = licenses.mit ;
+ maintainers = with maintainers; [raskin teto];
+ platforms = platforms.linux ++ platforms.darwin;
+ downloadPage = "http://luarocks.org/releases/";
+ updateWalker = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.upstream b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.upstream
new file mode 100644
index 000000000000..e69de1fe8895
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/default.upstream
@@ -0,0 +1 @@
+url http://luarocks.org/releases/
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/luarocks-nix.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/luarocks-nix.nix
new file mode 100644
index 000000000000..57f200fd0fcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/luarocks-nix.nix
@@ -0,0 +1,14 @@
+{ luarocks, fetchFromGitHub }:
+luarocks.overrideAttrs(old: {
+ pname = "luarocks-nix";
+ version = "2019-09-07";
+ src = fetchFromGitHub {
+ owner = "nix-community";
+ repo = "luarocks-nix";
+ rev = "73b8772e56fd39dfffda9e3b13e9eb31e93d5cde";
+ sha256 = "00jgshygw439pbaxg7yph3ijia6nid9r1br416wdbyl5wqhlhm1y";
+ };
+ patches = [
+ ./darwin-3.1.3.patch
+ ];
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/setup-hook.sh
new file mode 100644
index 000000000000..587d5413c3ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/luarocks/setup-hook.sh
@@ -0,0 +1,16 @@
+unpackCmdHooks+=(_trySourceRock)
+unpackCmdHooks+=(_tryRockSpec)
+
+_tryRockSpec() {
+ if ! [[ "$curSrc" =~ \.rockspec$ ]]; then return 1; fi
+}
+
+_trySourceRock() {
+ if ! [[ "$curSrc" =~ \.src.rock$ ]]; then return 1; fi
+
+ # luarocks expects a clean <name>.rock.spec name to be the package name
+ # so we have to strip the hash
+ renamed="$(stripHash $curSrc)"
+ cp "$curSrc" "$renamed"
+ luarocks unpack --force "$renamed"
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix
new file mode 100644
index 000000000000..103c534dfa3d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/macdylibbundler/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+ pname = "macdylibbundler";
+ version = "20180825";
+
+ src = fetchFromGitHub {
+ owner = "auriamg";
+ repo = "macdylibbundler";
+ rev = "ce13cb585ead5237813b85e68fe530f085fc0a9e";
+ sha256 = "149p3dcnap4hs3nhq5rfvr3m70rrb5hbr5xkj1h0gsfp0d7gvxnj";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Utility to ease bundling libraries into executables for OSX";
+ longDescription = ''
+ dylibbundler is a small command-line programs that aims to make bundling
+ .dylibs as easy as possible. It automatically determines which dylibs are
+ needed by your program, copies these libraries inside the app bundle, and
+ fixes both them and the executable to be ready for distribution... all
+ this with a single command on the teminal! It will also work if your
+ program uses plug-ins that have dependencies too.
+ '';
+ homepage = "https://github.com/auriamg/macdylibbundler";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = [ maintainers.nomeata ];
+
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/md2man/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/md2man/default.nix
new file mode 100644
index 000000000000..7db3c902c7cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/md2man/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "go-md2man";
+ version = "2.0.0";
+
+ goPackagePath = "github.com/cpuguy83/go-md2man";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "cpuguy83";
+ repo = "go-md2man";
+ sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
+ };
+
+ meta = with lib; {
+ description = "Go tool to convert markdown to man pages";
+ license = licenses.mit;
+ homepage = "https://github.com/cpuguy83/go-md2man";
+ maintainers = with maintainers; [offline];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile
new file mode 100644
index 000000000000..15b33c53a653
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "mdl"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile.lock
new file mode 100644
index 000000000000..04268d3306c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ kramdown (1.17.0)
+ mdl (0.5.0)
+ kramdown (~> 1.12, >= 1.12.0)
+ mixlib-cli (~> 1.7, >= 1.7.0)
+ mixlib-config (~> 2.2, >= 2.2.1)
+ mixlib-cli (1.7.0)
+ mixlib-config (2.2.18)
+ tomlrb
+ tomlrb (1.2.8)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ mdl
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/default.nix
new file mode 100644
index 000000000000..ada686f2498a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "mdl";
+ gemdir = ./.;
+ exes = [ "mdl" ];
+
+ passthru.updateScript = bundlerUpdateScript "mdl";
+
+ meta = with lib; {
+ description = "A tool to check markdown files and flag style issues";
+ homepage = "https://github.com/markdownlint/markdownlint";
+ license = licenses.mit;
+ maintainers = with maintainers; [ gerschtli manveru nicknovitski ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/gemset.nix
new file mode 100644
index 000000000000..6d48be1cbcb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mdl/gemset.nix
@@ -0,0 +1,54 @@
+{
+ kramdown = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq";
+ type = "gem";
+ };
+ version = "1.17.0";
+ };
+ mdl = {
+ dependencies = ["kramdown" "mixlib-cli" "mixlib-config"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "047hp8z1ma630wp38bm1giklkf385rp6wly8aidn825q831w2g4i";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ mixlib-cli = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0647msh7kp7lzyf6m72g6snpirvhimjm22qb8xgv9pdhbcrmcccp";
+ type = "gem";
+ };
+ version = "1.7.0";
+ };
+ mixlib-config = {
+ dependencies = ["tomlrb"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gm6yj9cbbgsl9x4xqxga0vz5w0ksq2jnq1wj8hvgm5c4wfcrswb";
+ type = "gem";
+ };
+ version = "2.2.18";
+ };
+ tomlrb = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0g28ssfal6vry3cmhy509ba3vi5d5aggz1gnffnvvmc8ml8vkpiv";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
new file mode 100644
index 000000000000..890439adc6e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/micronucleus/default.nix
@@ -0,0 +1,38 @@
+{
+ pkgs
+, stdenv
+, libusb-compat-0_1
+, fetchFromGitHub
+, lib
+}:
+stdenv.mkDerivation rec {
+ pname = "micronucleus";
+ version = "2.04";
+
+ sourceRoot = "source/commandline";
+
+ src = fetchFromGitHub {
+ owner = "micronucleus";
+ repo = "micronucleus";
+ rev = version;
+ sha256 = "14msy9amlbflw5mqrbs57b7bby3nsgx43srr7215zyhfdgsla0in";
+ };
+
+ buildInputs = [ libusb-compat-0_1 ];
+ makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "CC=cc" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/lib/udev
+ cp micronucleus $out/bin
+ cp 49-micronucleus.rules $out/lib/udev
+ '';
+
+ meta = with lib; {
+ description = "Upload tool for micronucleus";
+ homepage = "https://github.com/micronucleus/micronucleus";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.cab404 ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
new file mode 100644
index 000000000000..ec4042a2a276
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "mkcert";
+ version = "1.4.1";
+
+ src = fetchFromGitHub {
+ owner = "FiloSottile";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0w1ji96hbd3anzsz82xjcafsqhgyz7c7n41rsq60yrllwbj5946f";
+ };
+
+ vendorSha256 = "0b8ggdpbyxx5n2myhchhlwmm5nndwpykp1ylnzdyw12mdskfvn9h";
+
+ doCheck = false;
+
+ buildFlagsArray = ''
+ -ldflags=-X main.Version=v${version}
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/FiloSottile/mkcert";
+ description = "A simple tool for making locally-trusted development certificates";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/msitools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
new file mode 100644
index 000000000000..0e28f729fe9d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/msitools/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, intltool, glib, pkgconfig, libgsf, libuuid, gcab, bzip2, gnome3 }:
+
+stdenv.mkDerivation rec {
+ pname = "msitools";
+ version = "0.98";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "19wb3n3nwkpc6bjr0q3f1znaxsfaqgjbdxxnbx8ic8bb5b49hwac";
+ };
+
+ nativeBuildInputs = [ intltool pkgconfig ];
+ buildInputs = [ glib libgsf libuuid gcab bzip2 ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Set of programs to inspect and build Windows Installer (.MSI) files";
+ homepage = "https://wiki.gnome.org/msitools";
+ license = [ licenses.gpl2 licenses.lgpl21 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ninka/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ninka/default.nix
new file mode 100644
index 000000000000..e683bef7b060
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ninka/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, perl, perlPackages }:
+
+assert stdenv ? glibc;
+
+perlPackages.buildPerlPackage {
+ pname = "ninka";
+ version = "2.0-pre";
+
+ src = fetchFromGitHub {
+ owner = "dmgerman";
+ repo = "ninka";
+ rev = "b89b59ecd057dfc939d0c75acaddebb58fcd8cba";
+ sha256 = "1grlis1kycbcjvjgqvn7aw81q1qx49ahvxg2k7cgyr79mvgpgi9m";
+ };
+
+ buildInputs = with perlPackages; [ perl TestOutput DBDSQLite DBI TestPod TestPodCoverage SpreadsheetParseExcel ];
+
+ doCheck = false; # hangs
+
+ preConfigure = ''
+ sed -i.bak -e 's;#!/usr/bin/perl;#!${perl}/bin/perl;g' \
+ ./bin/ninka-excel ./bin/ninka ./bin/ninka-sqlite \
+ ./scripts/unify.pl ./scripts/parseLicense.pl \
+ ./scripts/license_matcher_modified.pl \
+ ./scripts/sort_package_license_list.pl
+ perl Makefile.PL
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A sentence based license detector";
+ homepage = "http://ninka.turingmachine.org/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.vrthra ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
new file mode 100644
index 000000000000..eca2dc966624
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
+
+buildGoModule rec {
+ pname = "nix-build-uncached";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "Mic92";
+ repo = "nix-build-uncached";
+ rev = "v${version}";
+ sha256 = "106k4234gpi8mr0n0rfsgwk4z7v0b2gim0r5bhjvg2v566j67g02";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ meta = with lib; {
+ description = "A CI friendly wrapper around nix-build";
+ license = licenses.mit;
+ homepage = "https://github.com/Mic92/nix-build-uncached";
+ maintainers = [ maintainers.mic92 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix
new file mode 100644
index 000000000000..468623241bfd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nixbang/default.nix
@@ -0,0 +1,22 @@
+{ lib, pythonPackages, fetchFromGitHub }:
+
+let version = "0.1.2"; in
+pythonPackages.buildPythonApplication {
+ pname = "nixbang";
+ inherit version;
+ namePrefix = "";
+
+ src = fetchFromGitHub {
+ owner = "madjar";
+ repo = "nixbang";
+ rev = version;
+ sha256 = "1kzk53ry60i814wa6n9y2ni0bcxhbi9p8gdv10b974gf23mhi8vc";
+ };
+
+ meta = {
+ homepage = "https://github.com/madjar/nixbang";
+ description = "A special shebang to run scripts in a nix-shell";
+ maintainers = [ lib.maintainers.madjar ];
+ platforms = lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix
new file mode 100644
index 000000000000..eeb9100a4c8f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python37Packages, fetchFromGitHub }:
+
+with python37Packages; buildPythonApplication rec {
+ pname = "nrfutil";
+ version = "6.1";
+
+ src = fetchFromGitHub {
+ owner = "NordicSemiconductor";
+ repo = "pc-nrfutil";
+ rev = "v${version}";
+ sha256 = "0g43lf5jmk0qxb7r4h68wr38fli6pjjk67w8l2cpdm9rd8jz4lpn";
+ };
+
+ propagatedBuildInputs = [ pc-ble-driver-py six pyserial enum34 click ecdsa
+ protobuf tqdm piccata pyspinel intelhex pyyaml crcmod libusb1 ipaddress ];
+
+ checkInputs = [ nose behave ];
+
+ postPatch = ''
+ mkdir test-reports
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Device Firmware Update tool for nRF chips";
+ homepage = "https://github.com/NordicSemiconductor/pc-nrfutil";
+ license = licenses.unfreeRedistributable;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ gebner ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
new file mode 100644
index 000000000000..58178cde1744
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, bzip2
+, libusb1
+, libzip
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nxpmicro-mfgtools";
+ version = "1.3.191";
+
+ src = fetchFromGitHub {
+ owner = "NXPmicro";
+ repo = "mfgtools";
+ rev = "uuu_${version}";
+ sha256 = "196blmd7nf5kamvay22rvnkds2v6h7ab8lyl10dknxgy8i8siqq9";
+ };
+
+ nativeBuildInputs = [ cmake pkg-config ];
+
+ buildInputs = [ bzip2 libusb1 libzip openssl ];
+
+ preConfigure = "echo ${version} > .tarball-version";
+
+ meta = with stdenv.lib; {
+ description = "Freescale/NXP I.MX chip image deploy tools";
+ longDescription = ''
+ UUU (Universal Update Utility) is a command line tool, evolved out of
+ MFGTools (aka MFGTools v3).
+
+ One of the main purposes is to upload images to I.MX SoC's using at least
+ their boot ROM.
+
+ With time, the need for an update utility portable to Linux and Windows
+ increased. UUU has the same usage on both Windows and Linux. It means the same
+ script works on both OS.
+ '';
+ homepage = "https://github.com/NXPmicro/mfgtools";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.bmilanov ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/objconv/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
new file mode 100644
index 000000000000..52cc1b2d5c58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+ pname = "objconv";
+ version = "2.52";
+
+ src = fetchurl {
+ # Versioned archive of objconv sources maintained by orivej.
+ url = "https://archive.org/download/objconv/${pname}-${version}.zip";
+ sha256 = "0r117r7yvqvvdgwgwxpkyzi6p5nm0xb6p67wvkmvggm9fdyl3z8v";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ outputs = [ "out" "doc" ];
+
+ unpackPhase = ''
+ mkdir -p "$name"
+ cd "$name"
+ unpackFile "$src"
+ unpackFile source.zip
+ '';
+
+ buildPhase = "c++ -o objconv -O2 *.cpp";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/doc/objconv
+ mv objconv $out/bin
+ mv objconv-instructions.pdf $out/doc/objconv
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Object and executable file converter, modifier and disassembler";
+ homepage = "https://www.agner.org/optimize/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ orivej vrthra ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile
new file mode 100644
index 000000000000..bf4378d58ce2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'one_gadget'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile.lock
new file mode 100644
index 000000000000..db20c8b0ffdc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/Gemfile.lock
@@ -0,0 +1,17 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ bindata (2.4.4)
+ elftools (1.1.0)
+ bindata (~> 2)
+ one_gadget (1.7.2)
+ elftools (>= 1.0.2, < 1.2.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ one_gadget
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/default.nix
new file mode 100644
index 000000000000..c3d0a6b57b45
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "one_gadget";
+ gemdir = ./.;
+ exes = [ "one_gadget" ];
+
+ passthru.updateScript = bundlerUpdateScript "one_gadget";
+
+ meta = with lib; {
+ description = "The best tool for finding one gadget RCE in libc.so.6";
+ homepage = "https://github.com/david942j/one_gadget";
+ license = licenses.mit;
+ maintainers = with maintainers; [ artemist nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/gemset.nix
new file mode 100644
index 000000000000..26507a26e915
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/one_gadget/gemset.nix
@@ -0,0 +1,34 @@
+{
+ bindata = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kz42nvxnk1j9cj0i8lcnhprcgdqsqska92g6l19ziadydfk2gqy";
+ type = "gem";
+ };
+ version = "2.4.4";
+ };
+ elftools = {
+ dependencies = ["bindata"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0kdf0ck4rzxpd006y09rfwppdrqb3sxww4gzfpv2053yq4mkimbn";
+ type = "gem";
+ };
+ version = "1.1.0";
+ };
+ one_gadget = {
+ dependencies = ["elftools"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07s2nigjw1yik895gliz3a7ps0m9j5nccq82zwdd30sv740jmf5b";
+ type = "gem";
+ };
+ version = "1.7.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
new file mode 100644
index 000000000000..79fa383300e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/opengrok/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, jre, ctags, makeWrapper, coreutils, git, runtimeShell }:
+
+stdenv.mkDerivation rec {
+ pname = "opengrok";
+ version = "1.0";
+
+ # binary distribution
+ src = fetchurl {
+ url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
+ sha256 = "0h4rwfh8m41b7ij931gcbmkihri25m48373qf6ig0714s66xwc4i";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out
+ cp -a * $out/
+ substituteInPlace $out/bin/OpenGrok --replace "/bin/uname" "${coreutils}/bin/uname"
+ substituteInPlace $out/bin/Messages --replace "#!/bin/ksh" "#!${runtimeShell}"
+ wrapProgram $out/bin/OpenGrok \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ ctags git ]}" \
+ --set JAVA_HOME "${jre}" \
+ --set OPENGROK_TOMCAT_BASE "/var/tomcat"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Source code search and cross reference engine";
+ homepage = "https://opengrok.github.io/OpenGrok/";
+ license = licenses.cddl;
+ maintainers = [ maintainers.lethalman ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/openocd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
new file mode 100644
index 000000000000..47212e9967d0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
@@ -0,0 +1,60 @@
+{ stdenv, lib, fetchgit, libftdi1, libusb1, pkgconfig, hidapi, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "openocd";
+ version = "2020-09-02";
+
+ src = fetchgit {
+ url = "https://git.code.sf.net/p/openocd/code";
+ rev = "d46f28c2ea2611f5fbbc679a5eed253d3dcd2fe3";
+ sha256 = "1256qqhn3pxmijfk1x0y5b5kc5ar88ivykkvx0h1m7pdwqfs6zm9";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [ pkgconfig autoreconfHook ];
+ buildInputs = [ libftdi1 libusb1 hidapi ];
+
+ configureFlags = [
+ "--enable-jtag_vpi"
+ "--enable-usb_blaster_libftdi"
+ (lib.enableFeature (! stdenv.isDarwin) "amtjtagaccel")
+ (lib.enableFeature (! stdenv.isDarwin) "gw16012")
+ "--enable-presto_libftdi"
+ "--enable-openjtag_ftdi"
+ (lib.enableFeature (! stdenv.isDarwin) "oocd_trace")
+ "--enable-buspirate"
+ (lib.enableFeature stdenv.isLinux "sysfsgpio")
+ "--enable-remote-bitbang"
+ ];
+
+ NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [
+ "-Wno-error=cpp"
+ ];
+
+ postInstall = lib.optionalString stdenv.isLinux ''
+ mkdir -p "$out/etc/udev/rules.d"
+ rules="$out/share/openocd/contrib/60-openocd.rules"
+ if [ ! -f "$rules" ]; then
+ echo "$rules is missing, must update the Nix file."
+ exit 1
+ fi
+ ln -s "$rules" "$out/etc/udev/rules.d/"
+ '';
+
+ meta = with lib; {
+ description = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing";
+ longDescription = ''
+ OpenOCD provides on-chip programming and debugging support with a layered
+ architecture of JTAG interface and TAP support, debug target support
+ (e.g. ARM, MIPS), and flash chip drivers (e.g. CFI, NAND, etc.). Several
+ network interfaces are available for interactiving with OpenOCD: HTTP,
+ telnet, TCL, and GDB. The GDB server enables OpenOCD to function as a
+ "remote target" for source-level debugging of embedded systems using the
+ GNU GDB program.
+ '';
+ homepage = "https://openocd.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pahole/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
new file mode 100644
index 000000000000..bb88862a8e8e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit, cmake, elfutils, zlib }:
+
+stdenv.mkDerivation rec {
+ pname = "pahole";
+ version = "1.17";
+ src = fetchgit {
+ url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
+ rev = "v${version}";
+ sha256 = "13dxsmhpf9n2wqggf4gd6f12rm0vhv0q96jd50gkvaxzzvgpzzbc";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ elfutils zlib ];
+
+ # Put libraries in "lib" subdirectory, not top level of $out
+ cmakeFlags = [ "-D__LIB=lib" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://git.kernel.org/cgit/devel/pahole/pahole.git/";
+ description = "Pahole and other DWARF utils";
+ license = licenses.gpl2;
+
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bosu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix
new file mode 100644
index 000000000000..c64d722ca711
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, patchelf }:
+
+stdenv.mkDerivation rec {
+ name = "patchelf-0.9";
+
+ src = fetchurl {
+ url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
+ sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
+ };
+
+ setupHook = [ ./setup-hook.sh ];
+
+ doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
+
+ inherit (patchelf) meta;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
new file mode 100644
index 000000000000..1d31709ccf0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl }:
+
+# 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 = "patchelf";
+ version = "0.12";
+
+ src = fetchurl {
+ url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
+ sha256 = "14npmdxppmh0ci140w8i8cy7zg1pnqg81a1mdsnza711ab7k36k9";
+ };
+
+ setupHook = [ ./setup-hook.sh ];
+
+ # fails 8 out of 24 tests, problems when loading libc.so.6
+ doCheck = stdenv.name == "stdenv-linux";
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/NixOS/patchelf/blob/master/README";
+ license = licenses.gpl3;
+ description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/setup-hook.sh
new file mode 100644
index 000000000000..576b9ca2103e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/setup-hook.sh
@@ -0,0 +1,22 @@
+# This setup hook calls patchelf to automatically remove unneeded
+# directories from the RPATH of every library or executable in every
+# output.
+
+fixupOutputHooks+=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi')
+
+patchELF() {
+ local dir="$1"
+ [ -e "$dir" ] || return 0
+
+ header "shrinking RPATHs of ELF executables and libraries in $dir"
+
+ local i
+ while IFS= read -r -d $'\0' i; do
+ if [[ "$i" =~ .build-id ]]; then continue; fi
+ if ! isELF "$i"; then continue; fi
+ echo "shrinking $i"
+ patchelf --shrink-rpath "$i" || true
+ done < <(find "$dir" -type f -print0)
+
+ stopNest
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
new file mode 100644
index 000000000000..0d9eeb84bfb4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, autoreconfHook, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ name = "patchelf-${version}";
+ version = "2020-07-11";
+
+ src = fetchFromGitHub {
+ owner = "NixOS";
+ repo = "patchelf";
+ rev = "126372b636733b160e693c9913e871f6755c02e";
+ sha256 = "07cn40ypys5pyc3jfgxvqj7qk5v6m2rr5brnpmxdsl1557ryx226";
+ };
+
+ # Drop test that fails on musl (?)
+ postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+ substituteInPlace tests/Makefile.am \
+ --replace "set-rpath-library.sh" ""
+ '';
+
+ setupHook = [ ./setup-hook.sh ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+ buildInputs = [ ];
+
+ doCheck = !stdenv.isDarwin;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/NixOS/patchelf/blob/master/README";
+ license = licenses.gpl3;
+ description = "A small utility to modify the dynamic linker and RPATH of ELF executables";
+ maintainers = [ maintainers.eelco ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/2.36.3-not-win32.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/2.36.3-not-win32.patch
new file mode 100644
index 000000000000..c1dd808e6008
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/2.36.3-not-win32.patch
@@ -0,0 +1,324 @@
+--- a/glib/configure.ac 2013-08-04 20:21:20.808722600 -0500
++++ b/glib/configure.ac 2013-08-04 18:30:21.852852200 -0500
+@@ -1880,7 +1880,7 @@ dnl ************************************
+
+ AC_MSG_CHECKING(for platform-dependent source)
+ case "$host" in
+- *-*-cygwin*|*-*-mingw*)
++ *-*-mingw*)
+ PLATFORMDEP=gwin32.lo
+ ;;
+ *)
+@@ -2594,9 +2594,6 @@ dnl *** Win32 API libs ***
+ dnl **********************
+
+ case $host in
+- *-*-cygwin*)
+- G_LIBS_EXTRA="-luser32 -lkernel32"
+- ;;
+ *-*-mingw*)
+ G_LIBS_EXTRA="-lws2_32 -lole32 -lwinmm -lshlwapi"
+ ;;
+--- a/glib/glib/gatomic.c 2013-08-04 20:21:20.907728300 -0500
++++ b/glib/glib/gatomic.c 2013-08-04 18:11:14.000000000 -0500
+@@ -464,7 +464,7 @@ gsize
+ return g_atomic_pointer_xor ((volatile gpointer *) atomic, val);
+ }
+
+-#elif defined (G_PLATFORM_WIN32)
++#elif defined (G_OS_WIN32)
+
+ #include <windows.h>
+ #if !defined(_M_AMD64) && !defined (_M_IA64) && !defined(_M_X64) && !(defined _MSC_VER && _MSC_VER <= 1200)
+--- a/glib/glib/gcharset.c 2013-08-04 20:21:20.925729300 -0500
++++ b/glib/glib/gcharset.c 2013-08-04 18:11:14.000000000 -0500
+@@ -496,7 +496,7 @@ guess_category_value (const gchar *categ
+ if ((retval != NULL) && (retval[0] != '\0'))
+ return retval;
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ /* g_win32_getlocale() first checks for LC_ALL, LC_MESSAGES and
+ * LANG, which we already did above. Oh well. The main point of
+ * calling g_win32_getlocale() is to get the thread's locale as used
+--- a/glib/glib/gconvert.c 2013-08-04 20:21:20.933729800 -0500
++++ b/glib/glib/gconvert.c 2013-08-04 18:11:14.000000000 -0500
+@@ -33,9 +33,6 @@
+
+ #ifdef G_OS_WIN32
+ #include "win_iconv.c"
+-#endif
+-
+-#ifdef G_PLATFORM_WIN32
+ #define STRICT
+ #include <windows.h>
+ #undef STRICT
+@@ -1258,7 +1255,7 @@ g_locale_from_utf8 (const gchar *utf8str
+ charset, "UTF-8", bytes_read, bytes_written, error);
+ }
+
+-#ifndef G_PLATFORM_WIN32
++#ifndef G_OS_WIN32
+
+ typedef struct _GFilenameCharsetCache GFilenameCharsetCache;
+
+@@ -1374,7 +1371,7 @@ g_get_filename_charsets (const gchar ***
+ return cache->is_utf8;
+ }
+
+-#else /* G_PLATFORM_WIN32 */
++#else /* G_OS_WIN32 */
+
+ gboolean
+ g_get_filename_charsets (const gchar ***filename_charsets)
+@@ -1403,7 +1400,7 @@ g_get_filename_charsets (const gchar ***
+ #endif
+ }
+
+-#endif /* G_PLATFORM_WIN32 */
++#endif /* G_OS_WIN32 */
+
+ static gboolean
+ get_filename_charset (const gchar **filename_charset)
+--- a/glib/glib/gfileutils.c 2013-08-04 20:21:20.942730300 -0500
++++ b/glib/glib/gfileutils.c 2013-08-04 18:11:14.000000000 -0500
+@@ -2153,7 +2153,7 @@ g_path_skip_root (const gchar *file_name
+ {
+ g_return_val_if_fail (file_name != NULL, NULL);
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ /* Skip \\server\share or //server/share */
+ if (G_IS_DIR_SEPARATOR (file_name[0]) &&
+ G_IS_DIR_SEPARATOR (file_name[1]) &&
+@@ -2163,7 +2163,6 @@ g_path_skip_root (const gchar *file_name
+ gchar *p;
+ p = strchr (file_name + 2, G_DIR_SEPARATOR);
+
+-#ifdef G_OS_WIN32
+ {
+ gchar *q;
+
+@@ -2171,7 +2170,6 @@ g_path_skip_root (const gchar *file_name
+ if (p == NULL || (q != NULL && q < p))
+ p = q;
+ }
+-#endif
+
+ if (p && p > file_name + 2 && p[1])
+ {
+--- a/glib/glib/glib.h 2013-08-04 20:21:20.949730700 -0500
++++ b/glib/glib/glib.h 2013-08-04 18:11:14.000000000 -0500
+@@ -96,7 +96,7 @@
+ #include <glib/gvariant.h>
+ #include <glib/gversion.h>
+ #include <glib/gversionmacros.h>
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ #include <glib/gwin32.h>
+ #endif
+
+--- a/glib/glib/gutf8.c 2013-08-04 20:21:20.984732700 -0500
++++ b/glib/glib/gutf8.c 2013-08-04 18:11:14.000000000 -0500
+@@ -27,7 +27,7 @@
+ #endif
+ #include <string.h>
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ #include <stdio.h>
+ #define STRICT
+ #include <windows.h>
+--- a/glib/glib/gutils.c 2013-08-04 20:21:21.015734500 -0500
++++ b/glib/glib/gutils.c 2013-08-04 18:11:14.000000000 -0500
+@@ -72,7 +72,7 @@
+ #include "garray.h"
+ #include "glibintl.h"
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ #include "gconvert.h"
+ #include "gwin32.h"
+ #endif
+@@ -86,16 +86,13 @@
+ * These are portable utility functions.
+ */
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+ # include <windows.h>
+ # ifndef GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
+ # define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 2
+ # define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 4
+ # endif
+ # include <lmcons.h> /* For UNLEN */
+-#endif /* G_PLATFORM_WIN32 */
+-
+-#ifdef G_OS_WIN32
+ # include <direct.h>
+ # include <shlobj.h>
+ /* older SDK (e.g. msvc 5.0) does not have these*/
+@@ -131,7 +128,7 @@
+ #include <langinfo.h>
+ #endif
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+
+ gchar *
+ _glib_get_dll_directory (void)
+--- a/glib/glib/gutils.h 2013-08-04 20:21:21.067737500 -0500
++++ b/glib/glib/gutils.h 2013-08-04 18:11:14.000000000 -0500
+@@ -350,7 +350,7 @@ g_bit_storage (gulong number)
+ * On non-Windows platforms, expands to nothing.
+ */
+
+-#ifndef G_PLATFORM_WIN32
++#ifndef G_OS_WIN32
+ # define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name)
+ #else
+ # define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) \
+@@ -378,7 +378,7 @@ DllMain (HINSTANCE hinstDLL, \
+
+ #endif /* !G_DISABLE_DEPRECATED */
+
+-#endif /* G_PLATFORM_WIN32 */
++#endif /* G_OS_WIN32 */
+
+ G_END_DECLS
+
+--- a/glib/glib/gwin32.h 2013-08-04 20:21:21.081738300 -0500
++++ b/glib/glib/gwin32.h 2013-08-04 18:11:14.000000000 -0500
+@@ -33,7 +33,7 @@
+
+ #include <glib/gtypes.h>
+
+-#ifdef G_PLATFORM_WIN32
++#ifdef G_OS_WIN32
+
+ G_BEGIN_DECLS
+
+@@ -41,8 +41,6 @@ G_BEGIN_DECLS
+ #define MAXPATHLEN 1024
+ #endif
+
+-#ifdef G_OS_WIN32
+-
+ /*
+ * To get prototypes for the following POSIXish functions, you have to
+ * include the indicated non-POSIX headers. The functions are defined
+@@ -68,7 +66,6 @@ G_BEGIN_DECLS
+ GLIB_AVAILABLE_IN_ALL
+ gint g_win32_ftruncate (gint f,
+ guint size);
+-#endif /* G_OS_WIN32 */
+
+ /* The MS setlocale uses locale names of the form "English_United
+ * States.1252" etc. We want the Unixish standard form "en", "zh_TW"
+@@ -112,7 +109,7 @@ gchar* g_win32_locale_filename_
+
+ G_END_DECLS
+
+-#endif /* G_PLATFORM_WIN32 */
++#endif /* G_OS_WIN32 */
+
+ #ifdef G_OS_WIN32
+ #ifdef _WIN64
+--- a/glib/glib/libcharset/localcharset.c 2013-08-04 20:21:21.095739100 -0500
++++ b/glib/glib/libcharset/localcharset.c 2013-08-04 18:11:14.000000000 -0500
+@@ -46,10 +46,6 @@
+ # include <locale.h>
+ # endif
+ # endif
+-# ifdef __CYGWIN__
+-# define WIN32_LEAN_AND_MEAN
+-# include <windows.h>
+-# endif
+ #elif defined WIN32_NATIVE
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+@@ -111,7 +107,7 @@ _g_locale_get_charset_aliases (void)
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+-#if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
++#if !(defined VMS || defined WIN32_NATIVE)
+ FILE *fp;
+ const char *dir;
+ const char *base = "charset.alias";
+@@ -237,7 +233,7 @@ _g_locale_get_charset_aliases (void)
+ "DECKOREAN" "\0" "EUC-KR" "\0";
+ # endif
+
+-# if defined WIN32_NATIVE || defined __CYGWIN__
++# if defined WIN32_NATIVE
+ /* To avoid the troubles of installing a separate file in the same
+ directory as the DLL and of retrieving the DLL's directory at
+ runtime, simply inline the aliases here. */
+@@ -292,53 +288,6 @@ _g_locale_charset_raw (void)
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+-# ifdef __CYGWIN__
+- /* Cygwin 2006 does not have locales. nl_langinfo (CODESET) always
+- returns "US-ASCII". As long as this is not fixed, return the suffix
+- of the locale name from the environment variables (if present) or
+- the codepage as a number. */
+- if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+- {
+- const char *locale;
+- static char buf[2 + 10 + 1];
+-
+- locale = getenv ("LC_ALL");
+- if (locale == NULL || locale[0] == '\0')
+- {
+- locale = getenv ("LC_CTYPE");
+- if (locale == NULL || locale[0] == '\0')
+- locale = getenv ("LANG");
+- }
+- if (locale != NULL && locale[0] != '\0')
+- {
+- /* If the locale name contains an encoding after the dot, return
+- it. */
+- const char *dot = strchr (locale, '.');
+-
+- if (dot != NULL)
+- {
+- const char *modifier;
+-
+- dot++;
+- /* Look for the possible @... trailer and remove it, if any. */
+- modifier = strchr (dot, '@');
+- if (modifier == NULL)
+- return dot;
+- if (modifier - dot < sizeof (buf))
+- {
+- memcpy (buf, dot, modifier - dot);
+- buf [modifier - dot] = '\0';
+- return buf;
+- }
+- }
+- }
+-
+- /* Woe32 has a function returning the locale's codepage as a number. */
+- sprintf (buf, "CP%u", GetACP ());
+- codeset = buf;
+- }
+-# endif
+-
+ # else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+diff --git a/glib/gtypes.h b/glib/gtypes.h
+index c18e0bf..816685a 100644
+--- a/glib/glib/gtypes.h
++++ b/glib/glib/gtypes.h
+@@ -462,7 +462,7 @@ G_END_DECLS
+ * properly get exported in Windows DLLs.
+ */
+ #ifndef GLIB_VAR
+-# ifdef G_PLATFORM_WIN32
++# ifdef G_OS_WIN32
+ # ifdef GLIB_STATIC_COMPILATION
+ # define GLIB_VAR extern
+ # else /* !GLIB_STATIC_COMPILATION */
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/default.nix
new file mode 100644
index 000000000000..84f6c330f8c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, libiconv, vanilla ? false }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "pkg-config";
+ version = "0.29.2";
+
+ src = fetchurl {
+ url = "https://pkgconfig.freedesktop.org/releases/${pname}-${version}.tar.gz";
+ sha256 = "14fmwzki1rlz8bs2p810lk6jqdxsk966d8drgsjmi54cd00rrikg";
+ };
+
+ outputs = [ "out" "man" "doc" ];
+
+ # Process Requires.private properly, see
+ # http://bugs.freedesktop.org/show_bug.cgi?id=4738, migrated to
+ # https://gitlab.freedesktop.org/pkg-config/pkg-config/issues/28
+ patches = optional (!vanilla) ./requires-private.patch
+ ++ optional stdenv.isCygwin ./2.36.3-not-win32.patch;
+
+ # These three tests fail due to a (desired) behavior change from our ./requires-private.patch
+ postPatch = if vanilla then null else ''
+ rm -f check/check-requires-private check/check-gtk check/missing
+ '';
+
+ buildInputs = optional (stdenv.isCygwin || stdenv.isDarwin || stdenv.isSunOS) libiconv;
+
+ configureFlags = [ "--with-internal-glib" ]
+ ++ optional (stdenv.isSunOS) [ "--with-libiconv=gnu" "--with-system-library-path" "--with-system-include-path" "CFLAGS=-DENABLE_NLS" ]
+ # Can't run these tests while cross-compiling
+ ++ optional (stdenv.hostPlatform != stdenv.buildPlatform)
+ [ "glib_cv_stack_grows=no"
+ "glib_cv_uscore=no"
+ "ac_cv_func_posix_getpwuid_r=yes"
+ "ac_cv_func_posix_getgrgid_r=yes"
+ ];
+
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ postInstall = ''rm -f "$out"/bin/*-pkg-config''; # clean the duplicate file
+
+ meta = {
+ description = "A tool that allows packages to find out information about other packages";
+ homepage = "http://pkg-config.freedesktop.org/wiki/";
+ platforms = platforms.all;
+ license = licenses.gpl2Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/requires-private.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/requires-private.patch
new file mode 100644
index 000000000000..d40aa9801379
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkg-config/requires-private.patch
@@ -0,0 +1,17 @@
+diff --git a/main.c b/main.c
+index b61ca34..5a420c2 100644
+--- a/main.c
++++ b/main.c
+@@ -602,10 +602,10 @@ main (int argc, char **argv)
+ else
+ disable_private_libs();
+
+- /* honor Requires.private if any Cflags are requested or any static
++ /* honor Requires.private if any any static
+ * libs are requested */
+
+- if (pkg_flags & CFLAGS_ANY || want_requires_private || want_exists ||
++ if (want_requires_private ||
+ (want_static_lib_list && (pkg_flags & LIBS_ANY)))
+ enable_requires_private();
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
new file mode 100644
index 000000000000..6fca02ad788b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pkgconf/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, removeReferencesTo }:
+
+stdenv.mkDerivation rec {
+ pname = "pkgconf";
+ version = "1.7.3";
+
+ nativeBuildInputs = [ removeReferencesTo ];
+
+ outputs = [ "out" "lib" "dev" "man" "doc" ];
+
+ enableParallelBuilding = true;
+
+ src = fetchurl {
+ url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
+ sha256 = "1h7rf5cch0cbxp8nmjkkf272zrz2jgpqpr8a58ww75pn3jjswimq";
+ };
+
+ # Debian has outputs like these too:
+ # https://packages.debian.org/source/buster/pkgconf, so take it this
+ # reference removing is safe.
+ postFixup = ''
+ remove-references-to \
+ -t "${placeholder "dev"}" \
+ "${placeholder "lib"}"/lib/* \
+ "${placeholder "out"}"/bin/*
+ remove-references-to \
+ -t "${placeholder "out"}" \
+ "${placeholder "lib"}"/lib/*
+ ''
+ # Move back share/aclocal. Yes, this normally goes in the dev output for good
+ # reason, but in this case the dev output is for the `libpkgconf` library,
+ # while the aclocal stuff is for the tool. The tool is already for use during
+ # development, so there is no reason to have separate "dev-bin" and "dev-lib"
+ # outputs or someting.
+ + ''
+ mv ${placeholder "dev"}/share ${placeholder "out"}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Package compiler and linker metadata toolkit";
+ homepage = "https://git.dereferenced.org/pkgconf/pkgconf";
+ platforms = platforms.all;
+ license = licenses.isc;
+ maintainers = with maintainers; [ zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/default.nix
new file mode 100644
index 000000000000..81a88f20ad20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "pmccabe";
+ version = "2.6";
+
+ src = fetchurl {
+ url = "http://http.debian.net/debian/pool/main/p/pmccabe/pmccabe_${version}.tar.gz";
+ sha256 = "0a3h1b9fb87c82d5fbql5lc4gp338pa5s9i66dhw7zk8jdygx474";
+ };
+
+ patches = [
+ ./getopt_on_darwin.patch
+ ];
+
+ configurePhase = ''
+ sed -i -r Makefile \
+ -e 's,/usr/,/,g' \
+ -e "s,^DESTDIR =.*$,DESTDIR = $out," \
+ -e "s,^INSTALL = install.*$,INSTALL = install," \
+ -e "s,^all:.*$,all: \$(PROGS),"
+ '';
+
+ checkPhase = "make test";
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "McCabe-style function complexity and line counting for C and C++";
+ homepage = "https://people.debian.org/~bame/pmccabe/";
+ license = licenses.gpl2Plus;
+
+ longDescription = ''
+ pmccabe calculates McCabe-style cyclomatic complexity for C and
+ C++ source code. Per-function complexity may be used for
+ spotting likely trouble spots and for estimating testing
+ effort.
+
+ pmccabe also includes a non-commented line counter, decomment which
+ only removes comments from source code; codechanges, a program to
+ calculate the amount of change which has occurred between two source
+ trees or files; and vifn, to invoke vi given a function name rather
+ than a file name.
+ '';
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/getopt_on_darwin.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/getopt_on_darwin.patch
new file mode 100644
index 000000000000..534d6c1d6ef7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pmccabe/getopt_on_darwin.patch
@@ -0,0 +1,15 @@
+diff --git a/decomment.c b/decomment.c
+index 400707a..aea29fd 100644
+--- a/decomment.c
++++ b/decomment.c
+@@ -11,6 +11,10 @@
+ #include "getopt.h"
+ #endif
+
++#ifdef __APPLE__
++#include "getopt.h"
++#endif
++
+ #ifdef NEED_OPTIND
+ extern int optind;
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/prelink/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/prelink/default.nix
new file mode 100644
index 000000000000..5d7ca75de322
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/prelink/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, libelf }:
+
+let
+ version = "20130503";
+in
+stdenv.mkDerivation {
+ pname = "prelink";
+ inherit version;
+
+ buildInputs = [
+ libelf stdenv.cc.libc (stdenv.lib.getOutput "static" stdenv.cc.libc)
+ ];
+
+ src = fetchurl {
+ url = "https://people.redhat.com/jakub/prelink/prelink-${version}.tar.bz2";
+ sha256 = "1w20f6ilqrz8ca51qhrn1n13h7q1r34k09g33d6l2vwvbrhcffb3";
+ };
+
+ meta = {
+ homepage = "https://people.redhat.com/jakub/prelink/";
+ license = "GPL";
+ description = "ELF prelinking utility to speed up dynamic linking";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/3.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/3.nix
new file mode 100644
index 000000000000..a630c0ced9e7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/3.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchurl, unzip}:
+
+let baseName = "premake";
+ version = "3.7";
+in
+
+stdenv.mkDerivation {
+ name = "${baseName}-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sourceforge/premake/${baseName}-src-${version}.zip";
+ sha256 = "b59841a519e75d5b6566848a2c5be2f91455bf0cc6ae4d688fcbd4c40db934d5";
+ };
+
+ buildInputs = [unzip];
+
+ installPhase = ''
+ install -Dm755 bin/premake $out/bin/premake
+ '';
+
+ premake_cmd = "premake";
+ setupHook = ./setup-hook.sh;
+
+ meta = {
+ homepage = "http://industriousone.com/premake";
+ description = "A simple build configuration and project generation tool using lua";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/5.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/5.nix
new file mode 100644
index 000000000000..5e8606833d31
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/5.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, Foundation, readline }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "premake5";
+ version = "5.0.0-alpha12";
+
+ src = fetchFromGitHub {
+ owner = "premake";
+ repo = "premake-core";
+ rev = "v${version}";
+ sha256 = "1h3hr96pdz94njn4bg02ldcz0k5j1x017d8svc7fdyvl2b77nqzf";
+ };
+
+ buildInputs = optionals stdenv.isDarwin [ Foundation readline ];
+
+ patchPhase = optional stdenv.isDarwin ''
+ substituteInPlace premake5.lua \
+ --replace -mmacosx-version-min=10.4 -mmacosx-version-min=10.5
+ '';
+
+ buildPhase =
+ if stdenv.isDarwin then ''
+ make -f Bootstrap.mak osx
+ '' else ''
+ make -f Bootstrap.mak linux
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/release/premake5 $out/bin/premake5
+ '';
+
+ premake_cmd = "premake5";
+ setupHook = ./setup-hook.sh;
+
+ meta = {
+ homepage = "https://premake.github.io";
+ description = "A simple build configuration and project generation tool using lua";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = platforms.darwin ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/default.nix
new file mode 100644
index 000000000000..92445abbba9b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, unzip }:
+
+let baseName = "premake";
+ version = "4.3";
+in
+
+stdenv.mkDerivation {
+ name = "${baseName}-${version}";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/${baseName}/${baseName}-${version}-src.zip";
+ sha256 = "1017rd0wsjfyq2jvpjjhpszaa7kmig6q1nimw76qx3cjz2868lrn";
+ };
+
+ nativeBuildInputs = [ unzip ];
+
+ buildPhase = ''
+ make -C build/gmake.unix/
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/release/premake4 $out/bin/premake4
+ '';
+
+ premake_cmd = "premake4";
+ setupHook = ./setup-hook.sh;
+
+ meta = with stdenv.lib; {
+ homepage = "http://industriousone.com/premake";
+ description = "A simple build configuration and project generation tool using lua";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/setup-hook.sh
new file mode 100644
index 000000000000..6e65e9e8c73f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/premake/setup-hook.sh
@@ -0,0 +1,19 @@
+premakeConfigurePhase() {
+ runHook preConfigure
+
+ local flagsArray=(
+ ${premakefile:+--file=$premakefile}
+ $premakeFlags ${premakeFlagsArray[@]}
+ ${premakeBackend:-gmake}
+ )
+
+ echoCmd 'configure flags' "${flagsArray[@]}"
+
+ @premake_cmd@ "${flagsArray[@]}"
+
+ runHook postConfigure
+}
+
+if [ -z "${configurePhase-}" ]; then
+ configurePhase=premakeConfigurePhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ptags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
new file mode 100644
index 000000000000..93014af3f620
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ptags/default.nix
@@ -0,0 +1,32 @@
+{ fetchFromGitHub
+, cargo
+, lib
+, rustPlatform
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "ptags";
+ version = "0.3.2";
+
+ src = fetchFromGitHub {
+ owner = "dalance";
+ repo = "ptags";
+ rev = "v${version}";
+ sha256 = "1xr1szh4dfrcmi6s6dj791k1ix2zbv75rqkqbyb1lmh5548kywkg";
+ };
+
+ cargoSha256 = "1rsnb4kzfb577xw7jk0939n42sv94vvspvbz783bmpy9vl53i38k";
+
+ # Sanity check.
+ checkPhase = ''
+ $releaseDir/ptags --help > /dev/null
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A parallel universal-ctags wrapper for git repository";
+ homepage = "https://github.com/dalance/ptags";
+ maintainers = with maintainers; [ pamplemousse ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
new file mode 100644
index 000000000000..f9d792d185f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, python3
+, fetchFromGitHub
+, makeWrapper
+, gdb
+}:
+
+let
+ pythonPath = with python3.pkgs; makePythonPath [
+ future
+ isort
+ psutil
+ pycparser
+ pyelftools
+ python-ptrace
+ ROPGadget
+ six
+ unicorn
+ pygments
+ ];
+
+in stdenv.mkDerivation rec {
+ pname = "pwndbg";
+ version = "2020.07.23";
+ format = "other";
+
+ src = fetchFromGitHub {
+ owner = "pwndbg";
+ repo = "pwndbg";
+ rev = version;
+ sha256 = "0w1dmjy8ii12367wza8c35a9q9x204fppf6x328q75bhb3gd845c";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/pwndbg
+ cp -r *.py pwndbg $out/share/pwndbg
+ chmod +x $out/share/pwndbg/gdbinit.py
+ makeWrapper ${gdb}/bin/gdb $out/bin/pwndbg \
+ --add-flags "-q -x $out/share/pwndbg/gdbinit.py" \
+ --set NIX_PYTHONPATH ${pythonPath}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Exploit Development and Reverse Engineering with GDB Made Easy";
+ homepage = "https://github.com/pwndbg/pwndbg";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
new file mode 100644
index 000000000000..412830369b9e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, libarchive, python3, file }:
+
+stdenv.mkDerivation rec {
+ pname = "remarkable-toolchain";
+ version = "1.8-23.9.2019";
+
+ src = fetchurl {
+ url = "https://remarkable.engineering/oecore-x86_64-cortexa9hf-neon-toolchain-zero-gravitas-${version}.sh";
+ sha256 = "6299955721bcd9bef92a87ad3cfe4d31df8e2da95b0c4b2cdded4431aa6748b0";
+ };
+
+ nativeBuildInputs = [
+ libarchive
+ python3
+ file
+ ];
+
+ unpackCmd = "mkdir src; install $curSrc src/install-toolchain.sh";
+
+ dontBuild = true;
+
+ installPhase = ''
+ patchShebangs install-toolchain.sh
+ sed -i -e '3,9d' install-toolchain.sh # breaks PATH
+ sed -i 's|PYTHON=.*$|PYTHON=${python3}/bin/python|' install-toolchain.sh
+ ./install-toolchain.sh -D -y -d $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A toolchain for cross-compiling to reMarkable tablets";
+ homepage = "https://remarkable.engineering/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.nickhu ];
+ platforms = platforms.x86_64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/replacement/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
new file mode 100644
index 000000000000..3d0218ffab23
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "replacement";
+ version = "0.4.4";
+
+ disabled = python3Packages.isPy27;
+
+ src = fetchFromGitHub {
+ owner = "siriobalmelli";
+ repo = "replacement";
+ rev = "v${version}";
+ sha256 = "0j4lvn3rx1kqvxcsd8nhc2lgk48jyyl7qffhlkvakhy60f9lymj3";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ ruamel_yaml
+ ];
+
+ checkInputs = with python3Packages; [
+ pytestCheckHook
+ sh
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/siriobalmelli/replacement";
+ description = "A tool to execute yaml templates and output text";
+ longDescription = ''
+ Replacement is a python utility
+ that parses a yaml template and outputs text.
+
+ A 'template' is a YAML file containing a 'replacement' object.
+
+ A 'replacement' object contains a list of blocks,
+ each of which is executed in sequence.
+
+ This tool is useful in generating configuration files,
+ static websites and the like.
+ '';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ siriobalmelli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
new file mode 100644
index 000000000000..de8a113d1011
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "reviewdog";
+ version = "0.10.2";
+
+ src = fetchFromGitHub {
+ owner = pname;
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1xi5dfdy66qa6xvy60fk2lmp9gxyi0nfkyvybcazn8mrd99hfh6l";
+ };
+
+ vendorSha256 = "0cxi01jxg89lsk91dv782746i8g9ksanx8igmgafq9vq25lld7yg";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/reviewdog" ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/reviewdog/reviewdog/commands.Version=${version}" ];
+
+ meta = with lib; {
+ description = "Automated code review tool integrated with any code analysis tools regardless of programming language";
+ homepage = "https://github.com/reviewdog/reviewdog";
+ changelog = "https://github.com/reviewdog/reviewdog/releases/tag/v${version}";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rman/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rman/default.nix
new file mode 100644
index 000000000000..09769d5c5912
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rman/default.nix
@@ -0,0 +1,32 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+ name = "rman-3.2";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/polyglotman/3.2/rman-3.2.tar.gz";
+ sha256 = "0prdld6nbkdlkcgc2r1zp13h2fh8r0mlwxx423dnc695ddlk18b8";
+ };
+
+ postPatch = ''
+ substituteInPlace Makefile \
+ --replace ginstall install
+ '';
+
+ makeFlags = [ "BINDIR=$(out)/bin" "MANDIR=$(out)/share/man" ];
+
+ preInstall = ''
+ mkdir -p $out/bin
+ mkdir -p $out/share/man
+ '';
+
+ hardeningDisable = [ "format" ];
+
+ doCheck = false; # "check" target is probably meant to do "installcheck" or something
+
+ meta = {
+ description = "Parse formatted man pages and man page source from most flavors of UNIX and converts them to HTML, ASCII, TkMan, DocBook, and other formats";
+ license = "artistic";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
new file mode 100644
index 000000000000..6eb13bb242da
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/rolespec/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, makeWrapper }:
+
+stdenv.mkDerivation rec {
+
+ name = "rolespec-${meta.version}";
+
+ src = fetchFromGitHub {
+ owner = "nickjj";
+ repo = "rolespec";
+ rev = "d9ee530cd709168882059776c482fc37f46cb743";
+ sha256 = "1jkidw6aqr0zfqwmcvlpi9qa140z2pxcfsd43xm5ikx6jcwjdrzl";
+ inherit name;
+ };
+
+ buildInputs = [ makeWrapper ];
+
+ # The default build phase (`make`) runs the test code. It's difficult to do
+ # the test in the build environment because it depends on the system package
+ # managers (apt/yum/pacman). We simply skip this phase since RoleSpec is
+ # shell based.
+ dontBuild = true;
+
+ # Wrap the program because `ROLESPEC_LIB` defaults to
+ # `/usr/local/lib/rolespec`.
+ installPhase = ''
+ make install PREFIX=$out
+ wrapProgram $out/bin/rolespec --set ROLESPEC_LIB $out/lib/rolespec
+ '';
+
+ # Since RoleSpec installs the shell script files in `lib` directory, the
+ # fixup phase shows some warnings. Disable these actions.
+ dontPatchELF = true;
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/nickjj/rolespec";
+ description = "A test library for testing Ansible roles";
+ longDescription = ''
+ A shell based test library for Ansible that works both locally and over
+ Travis-CI.
+ '';
+ downloadPage = "https://github.com/nickjj/rolespec";
+ license = licenses.gpl3;
+ version = "20161104";
+ maintainers = [ maintainers.dochang ];
+ platforms = platforms.unix;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
new file mode 100644
index 000000000000..b9f84edc964a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -0,0 +1,97 @@
+# Saleae logic analyzer software
+#
+# Suggested udev rules to be able to access the Logic device without being root:
+# SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="0925", ATTR{idProduct}=="3881", MODE="0666"
+# SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="21a9", ATTR{idProduct}=="1001", MODE="0666"
+#
+# In NixOS, simply add this package to services.udev.packages.
+
+{ stdenv, fetchurl, unzip, glib, libSM, libICE, gtk2, libXext, libXft
+, fontconfig, libXrender, libXfixes, libX11, libXi, libXrandr, libXcursor
+, freetype, libXinerama, libxcb, zlib, pciutils
+, makeDesktopItem, xkeyboardconfig, dbus, runtimeShell, libGL
+}:
+
+let
+
+ libPath = stdenv.lib.makeLibraryPath [
+ glib libSM libICE gtk2 libXext libXft fontconfig libXrender libXfixes libX11
+ libXi libXrandr libXcursor freetype libXinerama libxcb zlib stdenv.cc.cc.lib
+ dbus libGL
+ ];
+
+in
+
+assert stdenv.hostPlatform.system == "x86_64-linux";
+
+stdenv.mkDerivation rec {
+ pname = "saleae-logic";
+ version = "1.2.18";
+
+ src = fetchurl {
+ name = "saleae-logic-${version}-64bit.zip";
+ url = "http://downloads.saleae.com/logic/${version}/Logic%20${version}%20(64-bit).zip";
+ sha256 = "0lhair2vsg8sjvzicvfcjfmvy30q7i01xj4z02iqh7pgzpb025h8";
+ };
+
+ desktopItem = makeDesktopItem {
+ name = "saleae-logic";
+ exec = "saleae-logic";
+ icon = ""; # the package contains no icon
+ comment = "Software for Saleae logic analyzers";
+ desktopName = "Saleae Logic";
+ genericName = "Logic analyzer";
+ categories = "Development";
+ };
+
+ buildInputs = [ unzip ];
+
+ installPhase = ''
+ # Copy prebuilt app to $out
+ mkdir "$out"
+ cp -r * "$out"
+
+ # Patch it
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/Logic"
+ for bin in "$out/Logic" \
+ "$out/libQt5Widgets.so.5" \
+ "$out/libQt5Gui.so.5" \
+ "$out/libQt5Core.so.5" \
+ "$out/libQt5Network.so.5" ; do
+ patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64:${libPath}:\$ORIGIN/Analyzers:\$ORIGIN" "$bin"
+ done
+
+ patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64:${libPath}:\$ORIGIN/../" "$out/platforms/libqxcb.so"
+
+ # Build the LD_PRELOAD library that makes Logic work from a read-only directory
+ mkdir -p "$out/lib"
+ gcc -shared -fPIC -DOUT=\"$out\" "${./preload.c}" -o "$out/lib/preload.so" -ldl
+
+ # Make wrapper script that uses the LD_PRELOAD library
+ mkdir -p "$out/bin"
+ cat > "$out/bin/saleae-logic" << EOF
+ #!${runtimeShell}
+ export LD_PRELOAD="$out/lib/preload.so"
+ export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"
+ export PATH="${pciutils}/bin:\$PATH"
+ exec "$out/Logic" "\$@"
+ EOF
+ chmod a+x "$out"/bin/saleae-logic
+
+ # Copy the generated .desktop file
+ mkdir -p "$out/share/applications"
+ cp "$desktopItem"/share/applications/* "$out/share/applications/"
+
+ # Install provided udev rules
+ mkdir -p "$out/etc/udev/rules.d"
+ cp Drivers/99-SaleaeLogic.rules "$out/etc/udev/rules.d/"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Software for Saleae logic analyzers";
+ homepage = "https://www.saleae.com/";
+ license = licenses.unfree;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/preload.c b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/preload.c
new file mode 100644
index 000000000000..b4451e4d99f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/saleae-logic/preload.c
@@ -0,0 +1,341 @@
+/*
+ * LD_PRELOAD trick to make Saleae Logic work from a read-only installation
+ * directory.
+ *
+ * Saleae Logic tries to write to a few directories inside its installation
+ * directory. Because the Nix store is read-only, we have to redirect access to
+ * this file somewhere else. Here's the map:
+ *
+ * $out/Settings/ => $HOME/.saleae-logic/Settings/
+ * $out/Databases/ => $HOME/.saleae-logic/Databases/
+ * $out/Errors/ => $HOME/.saleae-logic/Errors/
+ * $out/Calibration/ => $HOME/.saleae-logic/Calibration/
+ *
+ * This also makes the software multi-user aware :-)
+ *
+ * NOTE: AFAIK (Bjørn Forsman), Logic version 1.2+ was supposed to have a
+ * command line parameter for redirecting these write operations, but
+ * apparently that feature got postponed.
+ *
+ * Usage:
+ * gcc -shared -fPIC -DOUT="$out" preload.c -o preload.so -ldl
+ * LD_PRELOAD=$PWD/preload.so ./result/Logic
+ *
+ * To see the paths that are modified at runtime, set the environment variable
+ * PRELOAD_DEBUG to 1 (or anything really; debugging is on as long as the
+ * variable exists).
+ */
+
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <dlfcn.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <errno.h>
+
+#ifndef OUT
+#error Missing OUT define - path to the installation directory.
+#endif
+
+/*
+ * TODO: How to properly wrap "open", which is declared as a variadic function
+ * in glibc? The man page lists these signatures:
+ *
+ * int open(const char *pathname, int flags);
+ * int open(const char *pathname, int flags, mode_t mode);
+ *
+ * But using either signature in this code cause a compile error, because
+ * glibc has declared the function as "int open(const char *, int, ...)".
+ * Same thing with "openat".
+ *
+ * For now we discard the variadic args. It seems to work.
+ *
+ * Relevant:
+ * http://stackoverflow.com/questions/28462523/how-to-wrap-ioctlint-d-unsigned-long-request-using-ld-preload
+ */
+typedef FILE *(*fopen_func_t)(const char *path, const char *mode);
+typedef FILE *(*fopen64_func_t)(const char *path, const char *mode);
+typedef int (*open_func_t)(const char *pathname, int flags, ...);
+typedef int (*open64_func_t)(const char *pathname, int flags, ...);
+typedef int (*openat_func_t)(int dirfd, const char *pathname, int flags, ...);
+typedef int (*openat64_func_t)(int dirfd, const char *pathname, int flags, ...);
+typedef int (*xstat_func_t)(int vers, const char *pathname, struct stat *buf);
+typedef int (*xstat64_func_t)(int vers, const char *pathname, struct stat64 *buf);
+typedef int (*access_func_t)(const char *pathname, int mode);
+typedef int (*faccessat_func_t)(int dirfd, const char *pathname, int mode, int flags);
+typedef int (*unlink_func_t)(const char *pathname);
+
+/*
+ * Redirect $out/{Settings,Databases,Errors,Calibration}/ => $HOME/.saleae-logic/.
+ * Path is truncated if bigger than PATH_MAX.
+ *
+ * @param pathname Original file path.
+ * @param buffer Pointer to a buffer of size PATH_MAX bytes that this function
+ * will write the new redirected path to (if needed).
+ *
+ * @return Pointer to the resulting path. It will either be equal to the
+ * pathname (no redirect) or buffer argument (was redirected).
+ */
+static const char *redirect(const char *pathname, char *buffer)
+{
+ const char *homepath;
+ const char *new_path;
+ static char have_warned;
+ const char *remainder;
+ static char have_initialized;
+ static size_t out_strlen;
+ static size_t settings_strlen;
+ static size_t databases_strlen;
+ static size_t errors_strlen;
+ static size_t calibration_strlen;
+ int ret;
+ int i;
+
+ homepath = getenv("HOME");
+ if (!homepath) {
+ homepath = "/";
+ if (!have_warned && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: WARNING: HOME is unset, using \"/\" (root) instead.\n");
+ have_warned = 1;
+ }
+ }
+
+ if (!have_initialized) {
+ /*
+ * The directories that Saleae Logic expects to find.
+ * The first element is intentionally empty (create base dir).
+ */
+ char *dirs[] = {"", "/Settings", "/Databases", "/Errors", "/Calibration"};
+ char old_settings_path[PATH_MAX];
+ access_func_t orig_access;
+
+ out_strlen = strlen(OUT);
+ settings_strlen = out_strlen + strlen("/Settings");
+ databases_strlen = out_strlen + strlen("/Databases");
+ errors_strlen = out_strlen + strlen("/Errors");
+ calibration_strlen = out_strlen + strlen("/Calibration");
+ for (i = 0; i < sizeof dirs / sizeof dirs[0]; i++) {
+ snprintf(buffer, PATH_MAX, "%s/.saleae-logic%s", homepath, dirs[i]);
+ buffer[PATH_MAX-1] = '\0';
+ ret = mkdir(buffer, 0755);
+ if (0 != ret && errno != EEXIST) {
+ fprintf(stderr, "ERROR: Failed to create directory \"%s\": %s\n",
+ buffer, strerror(errno));
+ return NULL;
+ }
+ }
+
+ /*
+ * Automatic migration of the settings file:
+ * ~/.saleae-logic-settings.xml => ~/.saleae-logic/Settings/settings.xml
+ */
+ snprintf(old_settings_path, PATH_MAX, "%s/.saleae-logic-settings.xml", homepath);
+ old_settings_path[PATH_MAX-1] = '\0';
+ orig_access = (access_func_t)dlsym(RTLD_NEXT, "access");
+ if (orig_access(old_settings_path, F_OK) == 0) {
+ snprintf(buffer, PATH_MAX, "%s/.saleae-logic/Settings/settings.xml", homepath);
+ buffer[PATH_MAX-1] = '\0';
+ ret = rename(old_settings_path, buffer);
+ if (ret != 0) {
+ fprintf(stderr, "WARN: Failed to move %s to %s",
+ old_settings_path, buffer);
+ }
+ }
+
+ have_initialized = 1;
+ }
+
+ new_path = pathname;
+ remainder = pathname + out_strlen;
+
+ if ((strncmp(OUT "/Settings", pathname, settings_strlen) == 0) ||
+ (strncmp(OUT "/Databases", pathname, databases_strlen) == 0) ||
+ (strncmp(OUT "/Errors", pathname, errors_strlen) == 0) ||
+ (strncmp(OUT "/Calibration", pathname, calibration_strlen) == 0)) {
+ snprintf(buffer, PATH_MAX, "%s/.saleae-logic%s", homepath, remainder);
+ buffer[PATH_MAX-1] = '\0';
+ new_path = buffer;
+ }
+
+ return new_path;
+}
+
+FILE *fopen(const char *pathname, const char *mode)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ fopen_func_t orig_fopen;
+
+ orig_fopen = (fopen_func_t)dlsym(RTLD_NEXT, "fopen");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: fopen(\"%s\", \"%s\") => \"%s\"\n", pathname, mode, path);
+ }
+
+ return orig_fopen(path, mode);
+}
+
+FILE *fopen64(const char *pathname, const char *mode)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ fopen64_func_t orig_fopen64;
+
+ orig_fopen64 = (fopen64_func_t)dlsym(RTLD_NEXT, "fopen64");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: fopen64(\"%s\", \"%s\") => \"%s\"\n", pathname, mode, path);
+ }
+
+ return orig_fopen64(path, mode);
+}
+
+int open(const char *pathname, int flags, ...)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ open_func_t orig_open;
+
+ orig_open = (open_func_t)dlsym(RTLD_NEXT, "open");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: open(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_open(path, flags);
+}
+
+int open64(const char *pathname, int flags, ...)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ open64_func_t orig_open64;
+
+ orig_open64 = (open64_func_t)dlsym(RTLD_NEXT, "open64");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: open64(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_open64(path, flags);
+}
+
+int openat(int dirfd, const char *pathname, int flags, ...)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ openat_func_t orig_openat;
+
+ orig_openat = (openat_func_t)dlsym(RTLD_NEXT, "openat");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: openat(%d, \"%s\", %#x) => \"%s\"\n", dirfd, pathname, flags, path);
+ }
+
+ return orig_openat(dirfd, path, flags);
+}
+
+int openat64(int dirfd, const char *pathname, int flags, ...)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ openat64_func_t orig_openat64;
+
+ orig_openat64 = (openat64_func_t)dlsym(RTLD_NEXT, "openat64");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: openat64(%d, \"%s\", %#x) => \"%s\"\n", dirfd, pathname, flags, path);
+ }
+
+ return orig_openat64(dirfd, path, flags);
+}
+
+/*
+ * Notes about "stat".
+ *
+ * The stat function is special, at least in glibc, in that it cannot be
+ * directly overridden by LD_PRELOAD, due to it being inline wrapper around
+ * __xstat. The __xstat functions take one extra parameter, a version number,
+ * to indicate what "struct stat" should look like. This trick allows changing
+ * the contents of mode_t without changing the shared library major number. See
+ * sys/stat.h header for more info.
+ */
+int __xstat(int vers, const char *pathname, struct stat *buf)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ xstat_func_t orig_xstat;
+
+ orig_xstat = (xstat_func_t)dlsym(RTLD_NEXT, "__xstat");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: (__x)stat(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_xstat(vers, path, buf);
+}
+
+int __xstat64(int vers, const char *pathname, struct stat64 *buf)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ xstat64_func_t orig_xstat64;
+
+ orig_xstat64 = (xstat64_func_t)dlsym(RTLD_NEXT, "__xstat64");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: (__x)stat64(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_xstat64(vers, path, buf);
+}
+
+int access(const char *pathname, int mode)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ access_func_t orig_access;
+
+ orig_access = (access_func_t)dlsym(RTLD_NEXT, "access");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: access(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_access(path, mode);
+}
+
+int faccessat(int dirfd, const char *pathname, int mode, int flags)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ faccessat_func_t orig_faccessat;
+
+ orig_faccessat = (faccessat_func_t)dlsym(RTLD_NEXT, "faccessat");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: faccessat(\"%s\", ...) => \"%s\"\n", pathname, path);
+ }
+
+ return orig_faccessat(dirfd, path, mode, flags);
+}
+
+int unlink(const char *pathname)
+{
+ const char *path;
+ char buffer[PATH_MAX];
+ unlink_func_t orig_unlink;
+
+ orig_unlink = (unlink_func_t)dlsym(RTLD_NEXT, "unlink");
+ path = redirect(pathname, buffer);
+ if (path != pathname && getenv("PRELOAD_DEBUG")) {
+ fprintf(stderr, "preload_debug: unlink(\"%s\") => \"%s\"\n", pathname, path);
+ }
+
+ return orig_unlink(path);
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/scc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/scc/default.nix
new file mode 100644
index 000000000000..8a6a1471d0a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/scc/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "scc";
+ version = "2.13.0";
+
+ src = fetchFromGitHub {
+ owner = "boyter";
+ repo = "scc";
+ rev = "v${version}";
+ sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
+ };
+
+ vendorSha256 = null;
+
+ # scc has a scripts/ sub-package that's for testing.
+ excludedPackages = [ "scripts" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/boyter/scc";
+ description = "A very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go";
+ maintainers = with maintainers; [ sigma filalex77 ];
+ license = with licenses; [ unlicense /* or */ mit ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sccache/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
new file mode 100644
index 000000000000..51c22199cc15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sccache/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cargo, rustc, rustPlatform, pkgconfig, glib, openssl, darwin }:
+
+rustPlatform.buildRustPackage rec {
+ version = "0.2.13";
+ pname = "sccache";
+
+ src = fetchFromGitHub {
+ owner = "mozilla";
+ repo = "sccache";
+ rev = version;
+ sha256 = "19z9fdkn3bnr8q33m66h2by6bs6kmhw3a2lq2n8bywmnhrjwhxpw";
+ };
+ cargoSha256 = "1pm7il0x7i9mqx4vsmkcs8nq0dqr5ck3x3x7la6k39igaxn9vkwz";
+
+ cargoBuildFlags = [ "--features=all" ];
+ nativeBuildInputs = [
+ pkgconfig cargo rustc
+ ];
+ buildInputs = [
+ openssl
+ ] ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+ # Tests fail because of client server setup which is not possible inside the pure environment,
+ # see https://github.com/mozilla/sccache/issues/460
+ checkPhase = null;
+
+ meta = with stdenv.lib; {
+ description = "Ccache with Cloud Storage";
+ homepage = "https://github.com/mozilla/sccache";
+ maintainers = with maintainers; [ doronbehar ];
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/semver-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/semver-tool/default.nix
new file mode 100644
index 000000000000..0c1bb8ede1b8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/semver-tool/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "semver-tool";
+ version = "2.1.0";
+
+ src = fetchFromGitHub {
+ owner = "fsaintjacques";
+ repo = pname;
+ rev = version;
+ sha256 = "0lpwsa86qb5w6vbnsn892nb3qpxxx9ifxch8pw3ahzx2dqhdgnrr";
+ };
+
+ dontBuild = true; # otherwise we try to 'make' which fails.
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+ install src/semver $out/bin
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/fsaintjacques/semver-tool";
+ description = "semver bash implementation";
+ license = licenses.gpl3Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.qyliss ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sipp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sipp/default.nix
new file mode 100644
index 000000000000..610e66a2b9cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sipp/default.nix
@@ -0,0 +1,35 @@
+{stdenv, fetchurl, ncurses, libpcap }:
+
+stdenv.mkDerivation rec {
+ version = "3.6.0";
+
+ pname = "sipp";
+
+ src = fetchurl {
+ url = "https://github.com/SIPp/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
+ sha256 = "1fx1iy2n0m2kr91n1ii30frbscq375k3lqihdgvrqxn0zq8pnzp4";
+ };
+
+ postPatch = ''
+ sed -i "s@pcap/\(.*\).pcap@$out/share/pcap/\1.pcap@g" src/scenario.cpp
+ '';
+
+ configureFlags = [
+ "--with-pcap"
+ ];
+
+ postInstall = ''
+ mkdir -pv $out/share/pcap
+ cp pcap/* $out/share/pcap
+ '';
+
+ buildInputs = [ncurses libpcap];
+
+ meta = with stdenv.lib; {
+ homepage = "http://sipp.sf.net";
+ description = "The SIPp testing tool";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
new file mode 100644
index 000000000000..b2b83aa79b16
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sloccount/default.nix
@@ -0,0 +1,72 @@
+{ fetchurl, stdenv, perl, makeWrapper }:
+
+stdenv.mkDerivation rec {
+ name = "sloccount-2.26";
+
+ src = fetchurl {
+ url = "https://www.dwheeler.com/sloccount/${name}.tar.gz";
+ sha256 = "0ayiwfjdh1946asah861ah9269s5xkc8p5fv1wnxs9znyaxs4zzs";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ perl ];
+
+ # Make sure the Flex-generated files are newer than the `.l' files, so that
+ # Flex isn't needed to recompile them.
+ patchPhase = ''
+ for file in *
+ do
+ if grep -q /usr/bin/perl "$file"
+ then
+ echo "patching \`$file'..."
+ substituteInPlace "$file" --replace \
+ "/usr/bin/perl" "${perl}/bin/perl"
+ fi
+ done
+
+ for file in *.l
+ do
+ touch "$(echo $file | sed -es'/\.l$/.c/g')"
+ done
+ '';
+
+ makeFlags = [ "PREFIX=$(out)" "CC=cc" ];
+
+ doCheck = true;
+ checkPhase = ''HOME="$TMPDIR" PATH="$PWD:$PATH" make test'';
+
+ preInstall = ''
+ mkdir -p "$out/bin"
+ mkdir -p "$out/share/man/man1"
+ mkdir -p "$out/share/doc"
+ '';
+
+ postInstall = ''
+ for w in "$out/bin"/*; do
+ isScript "$w" || continue
+ wrapProgram "$w" --prefix PATH : "$out/bin"
+ done
+ '';
+
+ meta = {
+ description = "Set of tools for counting physical Source Lines of Code (SLOC)";
+
+ longDescription = ''
+ This is the home page of "SLOCCount", a set of tools for
+ counting physical Source Lines of Code (SLOC) in a large number
+ of languages of a potentially large set of programs. This suite
+ of tools was used in my papers More than a Gigabuck: Estimating
+ GNU/Linux's Size and Estimating Linux's Size to measure the SLOC
+ of entire GNU/Linux distributions, and my essay Linux Kernel
+ 2.6: It's Worth More! Others have measured Debian GNU/Linux and
+ the Perl CPAN library using this tool suite.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ homepage = "https://www.dwheeler.com/sloccount/";
+
+ maintainers = [ ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix
new file mode 100644
index 000000000000..66d40ae31279
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sqitch/default.nix
@@ -0,0 +1,32 @@
+{ name, stdenv, perl, makeWrapper, sqitchModule, databaseModule, shortenPerlShebang }:
+
+stdenv.mkDerivation {
+ name = "${name}-${sqitchModule.version}";
+
+ buildInputs = [ perl makeWrapper sqitchModule databaseModule ];
+
+ src = sqitchModule;
+ dontBuild = true;
+
+ nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ for d in bin/sqitch etc lib share ; do
+ # make sure dest alreay exists before symlink
+ # this prevents installing a broken link into the path
+ if [ -e ${sqitchModule}/$d ]; then
+ ln -s ${sqitchModule}/$d $out/$d
+ fi
+ done
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ shortenPerlShebang $out/bin/sqitch
+ '';
+ dontStrip = true;
+ postFixup = "wrapProgram $out/bin/sqitch --prefix PERL5LIB : $PERL5LIB";
+
+ meta = {
+ platforms = stdenv.lib.platforms.unix;
+ inherit (sqitchModule.meta) license;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/srecord/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/srecord/default.nix
new file mode 100644
index 000000000000..f978d4d4e120
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/srecord/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, boost, libtool, groff, ghostscript, libgcrypt ? null }:
+
+stdenv.mkDerivation rec {
+ name = "srecord-1.64";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/srecord/${name}.tar.gz";
+ sha256 = "1qk75q0k5vzmm3932q9hqz2gp8n9rrdfjacsswxc02656f3l3929";
+ };
+
+ buildInputs = [ boost libtool groff ghostscript libgcrypt ];
+
+ configureFlags = stdenv.lib.optional (libgcrypt == null) "--without-gcrypt";
+
+ meta = with stdenv.lib; {
+ description = "Collection of powerful tools for manipulating EPROM load files";
+ homepage = "http://srecord.sourceforge.net/";
+ license = licenses.gpl3Plus;
+ maintainers = [ maintainers.bjornfor ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stlink/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stlink/default.nix
new file mode 100644
index 000000000000..7793d9185e75
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stlink/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake, libusb1 }:
+
+let
+ # The Darwin build of stlink explicitly refers to static libusb.
+ libusb1' = if stdenv.isDarwin then libusb1.override { withStatic = true; } else libusb1;
+
+# IMPORTANT: You need permissions to access the stlink usb devices.
+# Add services.udev.pkgs = [ pkgs.stlink ] to your configuration.nix
+
+in stdenv.mkDerivation rec {
+ pname = "stlink";
+ version = "1.6.0";
+
+ src = fetchFromGitHub {
+ owner = "texane";
+ repo = "stlink";
+ rev = "v${version}";
+ sha256 = "1mlkrxjxg538335g59hjb0zc739dx4mhbspb26z5gz3lf7d4xv6x";
+ };
+
+ buildInputs = [ libusb1' ];
+ nativeBuildInputs = [ cmake ];
+ patchPhase = ''
+ sed -i 's@/etc/udev/rules.d@$ENV{out}/etc/udev/rules.d@' CMakeLists.txt
+ sed -i 's@/etc/modprobe.d@$ENV{out}/etc/modprobe.d@' CMakeLists.txt
+ '';
+ preInstall = ''
+ mkdir -p $out/etc/udev/rules.d
+ mkdir -p $out/etc/modprobe.d
+ '';
+
+ meta = with stdenv.lib; {
+ description = "In-circuit debug and programming for ST-Link devices";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bjornfor maintainers.rongcuid ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
new file mode 100644
index 000000000000..80549d8848f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, requireFile, makeDesktopItem, libicns, imagemagick, jre, fetchzip }:
+
+let
+ version = "5.6.1";
+ desktopItem = makeDesktopItem {
+ name = "stm32CubeMX";
+ exec = "stm32cubemx";
+ desktopName = "STM32CubeMX";
+ categories = "Development;";
+ icon = "stm32cubemx";
+ };
+in
+stdenv.mkDerivation rec {
+ pname = "stm32cubemx";
+ inherit version;
+
+
+ src = fetchzip {
+ url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}.zip";
+ sha256 = "1y4a340wcjl88kjw1f1x85ffp4b5g1psryn9mgkd717w2bfpf29l";
+ stripRoot= false;
+ };
+
+ nativeBuildInputs = [ libicns imagemagick ];
+
+ buildCommand = ''
+ mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
+ cp -r $src/. $out/opt/STM32CubeMX/
+ chmod +rx $out/opt/STM32CubeMX/STM32CubeMX.exe
+ cat << EOF > $out/bin/${pname}
+ #!${stdenv.shell}
+ ${jre}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX.exe
+ EOF
+ chmod +x $out/bin/${pname}
+
+ icns2png --extract $out/opt/STM32CubeMX/${pname}.icns
+ ls
+ for size in 16 24 32 48 64 128 256; do
+ mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
+ if [ -e ${pname}_"$size"x"$size"x32.png ]; then
+ mv ${pname}_"$size"x"$size"x32.png \
+ $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
+ else
+ convert -resize "$size"x"$size" ${pname}_256x256x32.png \
+ $out/share/icons/hicolor/"$size"x"$size"/apps/${pname}.png
+ fi
+ done;
+
+ ln -s ${desktopItem}/share/applications/* $out/share/applications
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A graphical tool for configuring STM32 microcontrollers and microprocessors";
+ longDescription = ''
+ A graphical tool that allows a very easy configuration of STM32
+ microcontrollers and microprocessors, as well as the generation of the
+ corresponding initialization C code for the Arm® Cortex®-M core or a
+ partial Linux® Device Tree for Arm® Cortex®-A core), through a
+ step-by-step process.
+ '';
+ homepage = "https://www.st.com/en/development-tools/stm32cubemx.html";
+ license = licenses.unfree;
+ maintainers = with maintainers; [ wucke13 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix
new file mode 100644
index 000000000000..0c2cb96a9d6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/stm32flash/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "stm32flash-0.5";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/stm32flash/${name}.tar.gz";
+ sha256 = "01p396daqw3zh6nijffbfbwyqza33bi2k4q3m5yjzs02xwi99alp";
+ };
+
+ buildFlags = [ "CC=cc" ];
+
+ installPhase = ''
+ # Manually copy, make install copies to /usr/local/bin
+ mkdir -pv $out/bin/
+ cp stm32flash $out/bin/
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Open source flash program for the STM32 ARM processors using the ST bootloader";
+ homepage = "https://sourceforge.net/projects/stm32flash/";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = platforms.all; # Should work on all platforms
+ maintainers = with maintainers; [ elitak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/strace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/strace/default.nix
new file mode 100644
index 000000000000..14f4d5ef12e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/strace/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, perl, libunwind, buildPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "strace";
+ version = "5.9";
+
+ src = fetchurl {
+ url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
+ sha256 = "1nb6bm6ll6cxd6a2fc67c0qn39gbh6rkqrpv83lw6ijm8sw3wirr";
+ };
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [ perl ];
+
+ buildInputs = [ perl.out ] ++ stdenv.lib.optional libunwind.supportsHost libunwind; # support -k
+
+ postPatch = "patchShebangs --host strace-graph";
+
+ configureFlags = stdenv.lib.optional (!stdenv.hostPlatform.isx86) "--enable-mpers=check";
+
+ meta = with stdenv.lib; {
+ homepage = "https://strace.io/";
+ description = "A system call tracer for Linux";
+ license = with licenses; [ lgpl21Plus gpl2Plus ]; # gpl2Plus is for the test suite
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ globin ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/svls/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/svls/default.nix
new file mode 100644
index 000000000000..f04c93e7a171
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/svls/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "svls";
+ version = "0.1.17";
+
+ src = fetchFromGitHub {
+ owner = "dalance";
+ repo = "svls";
+ rev = "v${version}";
+ sha256 = "0qcd9pkshk94c6skzld8cyzppl05hk4vcmmaya8r9l6kdi1f4b5m";
+ };
+
+ cargoSha256 = "0dqa7iw0sffzh07qysznh7ma3d3vl5fhd0i2qmz7a3dvw8mvyvsm";
+
+ meta = with lib; {
+ description = "SystemVerilog language server";
+ homepage = "https://github.com/dalance/svls";
+ license = licenses.mit;
+ maintainers = with maintainers; [ trepetti ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/2.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/2.x.nix
new file mode 100644
index 000000000000..745cc9a2e783
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/2.x.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "swig";
+ version = "2.0.12";
+
+ src = fetchFromGitHub {
+ owner = "swig";
+ repo = "swig";
+ rev = "rel-${version}";
+ sha256 = "0khm9gh5pczfcihr0pbicaicc4v9kjm5ip2alvkhmbb3ga6njkcm";
+ };
+
+ nativeBuildInputs = [ autoconf automake libtool bison ];
+ buildInputs = [ pcre ];
+
+ configureFlags = [ "--without-tcl" ];
+
+ # Disable ccache documentation as it needs yodl
+ postPatch = ''
+ sed -i '/man1/d' CCache/Makefile.in
+ '';
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+ homepage = "http://swig.org/";
+ # Different types of licenses available: http://www.swig.org/Release/LICENSE .
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/3.x.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/3.x.nix
new file mode 100644
index 000000000000..75b0113b4977
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/3.x.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "swig";
+ version = "3.0.12";
+
+ src = fetchFromGitHub {
+ owner = "swig";
+ repo = "swig";
+ rev = "rel-${version}";
+ sha256 = "1wyffskbkzj5zyhjnnpip80xzsjcr3p0q5486z3wdwabnysnhn8n";
+ };
+
+ PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
+ nativeBuildInputs = [ autoconf automake libtool bison ];
+ buildInputs = [ pcre ];
+
+ configureFlags = [ "--without-tcl" ];
+
+ # Disable ccache documentation as it needs yodl
+ postPatch = ''
+ sed -i '/man1/d' CCache/Makefile.in
+ '';
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+ homepage = "http://swig.org/";
+ # Different types of licenses available: http://www.swig.org/Release/LICENSE .
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/4.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/4.nix
new file mode 100644
index 000000000000..4096b7353fa4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/4.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, libtool, bison, pcre }:
+
+stdenv.mkDerivation rec {
+ pname = "swig";
+ version = "4.0.2";
+
+ src = fetchFromGitHub {
+ owner = "swig";
+ repo = "swig";
+ rev = "rel-${version}";
+ sha256 = "12vlps766xvwck8q0i280s8yx21qm2dxl34710ybpmz3c1cfdjsc";
+ };
+
+ PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
+ nativeBuildInputs = [ autoconf automake libtool bison ];
+ buildInputs = [ pcre ];
+
+ configureFlags = [ "--without-tcl" ];
+
+ # Disable ccache documentation as it needs yodl
+ postPatch = ''
+ sed -i '/man1/d' CCache/Makefile.in
+ '';
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+ homepage = "http://swig.org/";
+ # Different types of licenses available: http://www.swig.org/Release/LICENSE .
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ orivej ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/default.nix
new file mode 100644
index 000000000000..cf0880855db6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/swig/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, boost, tcl }:
+
+stdenv.mkDerivation rec {
+ pname = "swig";
+ version = "1.3.40";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/swig/${pname}-${version}.tar.gz";
+ sha256 = "02dc8g8wy75nd2is1974rl24c6mdl0ai1vszs1xpg9nd7dlv6i8r";
+ };
+
+ doCheck = !stdenv.isCygwin;
+ # 'make check' uses boost and tcl
+ buildInputs = stdenv.lib.optionals doCheck [ boost tcl ];
+
+ configureFlags = [ "--disable-ccache" ];
+
+
+ meta = with stdenv.lib; {
+ description = "SWIG, an interface compiler that connects C/C++ code to higher-level languages";
+ homepage = "http://swig.org/";
+ # Different types of licenses available: http://www.swig.org/Release/LICENSE .
+ license = licenses.gpl3Plus;
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix
new file mode 100644
index 000000000000..616a1cbc3fbd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/sysbench/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
+, libmysqlclient, libaio
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sysbench";
+ version = "1.0.20";
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig ];
+ buildInputs = [ libmysqlclient libaio ];
+
+ src = fetchFromGitHub {
+ owner = "akopytov";
+ repo = pname;
+ rev = version;
+ sha256 = "1sanvl2a52ff4shj62nw395zzgdgywplqvwip74ky8q7s6qjf5qy";
+ };
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "Modular, cross-platform and multi-threaded benchmark tool";
+ homepage = "https://github.com/akopytov/sysbench";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix
new file mode 100644
index 000000000000..9872c91ac4ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tcptrack/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, ncurses, libpcap }:
+
+stdenv.mkDerivation rec {
+ pname = "tcptrack";
+ version = "1.4.3";
+
+ src = fetchFromGitHub {
+ owner = "bchretien";
+ repo = "tcptrack";
+ rev = "d05fe08154ff1e46578e92be49e4cfa2c6543283";
+ sha256 = "08lh3l67wn4kq9q0nfspc7rj0jvp9dzwjgxpvqliwcif8cy5mi45";
+ };
+
+ buildInputs = [ ncurses libpcap ];
+
+ NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "libpcap based program for live TCP connection monitoring";
+ license = licenses.lgpl21;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/teensy-loader-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/teensy-loader-cli/default.nix
new file mode 100644
index 000000000000..40f3921ec705
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/teensy-loader-cli/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, go-md2man, installShellFiles, libusb-compat-0_1 }:
+
+stdenv.mkDerivation rec {
+ pname = "teensy-loader-cli";
+ version = "2.1.20191110";
+
+ src = fetchFromGitHub {
+ owner = "PaulStoffregen";
+ repo = "teensy_loader_cli";
+ rev = "e98b5065cdb9f04aa4dde3f2e6e6e6f12dd97592";
+ sha256 = "1yx8vsh6b29pqr4zb6sx47429i9x51hj9psn8zksfz75j5ivfd5i";
+ };
+
+ buildInputs = [ libusb-compat-0_1 ];
+
+ nativeBuildInputs = [ go-md2man installShellFiles ];
+
+ installPhase = ''
+ install -Dm555 teensy_loader_cli $out/bin/teensy-loader-cli
+ install -Dm444 -t $out/share/doc/${pname} *.md *.txt
+ go-md2man -in README.md -out ${pname}.1
+ installManPage *.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Firmware uploader for the Teensy microcontroller boards";
+ homepage = "https://www.pjrc.com/teensy/";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
new file mode 100644
index 000000000000..a4fb72666ca6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terracognita";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "cycloidio";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1z0vf3x46w3glwvq185hgmfkg7xfq31c7d3yjhh8qkwbhkx4bga4";
+ };
+
+ vendorSha256 = "1dmv16v1c9sydbl1g69pgwvrhznd0a133giwrcbqi4cyg1fdb3sr";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ buildFlagsArray = [ "-ldflags=-s -w -X github.com/cycloidio/terracognita/cmd.Version=${version}" ];
+
+ meta = with lib; {
+ description = "Reads from existing Cloud Providers (reverse Terraform) and generates your infrastructure as code on Terraform configuration";
+ homepage = "https://github.com/cycloidio/terracognita";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
new file mode 100644
index 000000000000..4d999f32446b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "terraform-ls";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "hashicorp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1afdd1zs242nh1cync5ip1fbah34wc3gbsx3hwwiisc8yziwiq18";
+ };
+
+ goPackagePath = "github.com/hashicorp/terraform-ls";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+ meta = with lib; {
+ description = "Terraform Language Server (official)";
+ homepage = "https://github.com/hashicorp/terraform-ls";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ mbaillie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
new file mode 100644
index 000000000000..9a661f276772
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraform-lsp/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "terraform-lsp";
+ version = "0.0.10";
+
+ src = fetchFromGitHub {
+ owner = "juliosueiras";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1j69j1pkd0q6bds1c6pcaars5hl3hk93q2p31mymkzmy640k8zfn";
+ };
+
+ goPackagePath = "github.com/juliosueiras/terraform-lsp";
+
+ buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version} -X main.GitCommit=${src.rev}" ];
+
+ meta = with lib; {
+ description = "Language Server Protocol for Terraform";
+ homepage = "https://github.com/juliosueiras/terraform-lsp";
+ license = licenses.mit;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
new file mode 100644
index 000000000000..6ff0dd77aae2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "terraformer";
+ version = "0.8.8";
+
+ src = fetchFromGitHub {
+ owner = "GoogleCloudPlatform";
+ repo = pname;
+ rev = version;
+ sha256 = "1lzf30vpa0blbkz4ngnhrn3hpbqflqd4sni4bly9yqh4fnc44nvi";
+ };
+
+ vendorSha256 = "087448wkaw6jxv9d26hck4w3vdh06vcgywna6ydkqvxr0hp011b6";
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code";
+ homepage = "https://github.com/GoogleCloudPlatform/terraformer";
+ license = licenses.asl20;
+ maintainers = [ maintainers.marsam ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tet/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tet/default.nix
new file mode 100644
index 000000000000..acc42d61423b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tet/default.nix
@@ -0,0 +1,29 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation ({
+ version = "3.8";
+ pname = "tet";
+
+ src = fetchurl {
+ url = "http://tetworks.opengroup.org/downloads/38/software/Sources/3.8/tet3.8-src.tar.gz";
+ sha256 = "1j57hv56df38w249l595b8rsgmsyvjkbysai03a9724gax5jl9av" ;
+ };
+
+ buildInputs = [ ];
+
+ patchPhase = ''chmod +x configure'';
+
+ configurePhase = ''./configure -t lite'';
+
+ buildPhase = ''cd src; make; cd -'';
+
+ installPhase = ''cd src; make install; cd -; cp -vr $PWD $out'';
+
+ meta = {
+ description = "The Test Environment Toolkit is used in test applications like The Open Group's UNIX Certification program and the Free Standards Group's LSB Certification program";
+ homepage = "http://tetworks.opengroup.org/Products/tet.htm";
+ license = stdenv.lib.licenses.artistic1;
+ platforms = stdenv.lib.platforms.unix;
+ maintainers = [ ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix
new file mode 100644
index 000000000000..755bfcd7274b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texi2html/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, perl, gettext }:
+
+stdenv.mkDerivation rec {
+ pname = "texi2html";
+ version = "5.0";
+
+ src = fetchurl {
+ url = "mirror://savannah/texi2html/${pname}-${version}.tar.bz2";
+ sha256 = "1yprv64vrlcbksqv25asplnjg07mbq38lfclp1m5lj8cw878pag8";
+ };
+
+ nativeBuildInputs = [ gettext ];
+ buildInputs = [ perl ];
+
+ preBuild = ''
+ substituteInPlace separated_to_hash.pl \
+ --replace "/usr/bin/perl" "${perl}/bin/perl"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Perl script which converts Texinfo source files to HTML output";
+ homepage = "https://www.nongnu.org/texi2html/";
+ license = licenses.gpl2;
+ maintainers = [ maintainers.marcweber ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix
new file mode 100644
index 000000000000..5f4478bd4fbb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/4.13a.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, texinfo, ncurses, lzma }:
+
+stdenv.mkDerivation rec {
+ pname = "texinfo";
+ version = "4.13a";
+
+ src = fetchurl {
+ url = "mirror://gnu/texinfo/${pname}-${version}.tar.lzma";
+ sha256 = "1rf9ckpqwixj65bw469i634897xwlgkm5i9g2hv3avl6mv7b0a3d";
+ };
+
+ buildInputs = [ ncurses ];
+ nativeBuildInputs = [ lzma ];
+
+ # Disabled because we don't have zdiff in the stdenv bootstrap.
+ #doCheck = true;
+
+ meta = texinfo.meta // { branch = version; };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/5.2.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/5.2.nix
new file mode 100644
index 000000000000..d395494984d5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/5.2.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+ version = "5.2";
+ sha256 = "1njfwh2z34r2c4r0iqa7v24wmjzvsfyz4vplzry8ln3479lfywal";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.5.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.5.nix
new file mode 100644
index 000000000000..34596f306581
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.5.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+ version = "6.5";
+ sha256 = "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix
new file mode 100644
index 000000000000..7915d6e3c6be
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+ version = "6.7";
+ sha256 = "1aicn1v3czqii08wc91jw089n1x3gfchkf808q2as59dak0h714q";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix
new file mode 100644
index 000000000000..057e52615ac7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix
@@ -0,0 +1,81 @@
+{ version, sha256 }:
+
+{ stdenv, buildPackages, fetchurl, perl, xz, gettext
+
+# we are a dependency of gcc, this simplifies bootstraping
+, interactive ? false, ncurses, procps
+}:
+
+# 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.
+
+let
+ crossBuildTools = stdenv.hostPlatform != stdenv.buildPlatform;
+in
+
+with stdenv.lib;
+
+stdenv.mkDerivation {
+ name = "texinfo-${optionalString interactive "interactive-"}${version}";
+ inherit version;
+
+ src = fetchurl {
+ url = "mirror://gnu/texinfo/texinfo-${version}.tar.xz";
+ inherit sha256;
+ };
+
+ patches = optional crossBuildTools ./cross-tools-flags.patch;
+
+ # ncurses is required to build `makedoc'
+ # this feature is introduced by the ./cross-tools-flags.patch
+ NATIVE_TOOLS_CFLAGS = if crossBuildTools then "-I${getDev buildPackages.ncurses}/include" else null;
+ NATIVE_TOOLS_LDFLAGS = if crossBuildTools then "-L${getLib buildPackages.ncurses}/lib" else null;
+
+ # We need a native compiler to build perl XS extensions
+ # when cross-compiling.
+ depsBuildBuild = [ buildPackages.stdenv.cc perl ];
+
+ buildInputs = [ xz.bin ]
+ ++ optionals stdenv.isSunOS [ libiconv gawk ]
+ ++ optionals stdenv.isDarwin [ gettext ]
+ ++ optional interactive ncurses;
+
+ configureFlags = [ "PERL=${buildPackages.perl}/bin/perl" ]
+ ++ stdenv.lib.optional stdenv.isSunOS "AWK=${gawk}/bin/awk";
+
+ installFlags = [ "TEXMF=$(out)/texmf-dist" ];
+ installTargets = [ "install" "install-tex" ];
+
+ checkInputs = [ procps ];
+
+ doCheck = interactive
+ && !stdenv.isDarwin
+ && !stdenv.isSunOS; # flaky
+
+ meta = {
+ homepage = "https://www.gnu.org/software/texinfo/";
+ description = "The GNU documentation system";
+ license = licenses.gpl3Plus;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ vrthra oxij ];
+
+ longDescription = ''
+ Texinfo is the official documentation format of the GNU project.
+ It was invented by Richard Stallman and Bob Chassell many years
+ ago, loosely based on Brian Reid's Scribe and other formatting
+ languages of the time. It is used by many non-GNU projects as
+ well.
+
+ Texinfo uses a single source file to produce output in a number
+ of formats, both online and printed (dvi, html, info, pdf, xml,
+ etc.). This means that instead of writing different documents
+ for online information and another for a printed manual, you
+ need write only one document. And when the work is revised, you
+ need revise only that one document. The Texinfo system is
+ well-integrated with GNU Emacs.
+ '';
+ branch = version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
new file mode 100644
index 000000000000..f0a8c4dfdc1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
@@ -0,0 +1,13 @@
+diff -ur texinfo-6.5/configure texinfo-6.5-patched/configure
+--- texinfo-6.5/configure 2017-09-13 03:50:18.000000000 +0900
++++ texinfo-6.5-patched/configure 2019-12-28 17:39:06.692818866 +0900
+@@ -23281,7 +23281,7 @@
+ # env -i gives this build host configure a clean environment;
+ # consequently, we have to re-initialize $PATH.
+- env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
+- PATH="$PATH" \
++ env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \
++ PATH="$PATH" CFLAGS="$NATIVE_TOOLS_CFLAGS" LDFLAGS="$NATIVE_TOOLS_LDFLAGS" \
+ tools_only=1 \
+ ${confdir}/configure --build=${build} --host=${build} \
+ --disable-rpath --disable-nls
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texlab/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
new file mode 100644
index 000000000000..8b734bdd1c18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "texlab";
+ version = "2.2.0";
+
+ src = fetchFromGitHub {
+ owner = "latex-lsp";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0iydkbmx9z7xpwaif0han5jvy9xh1afmfyldl7fcyy4r906dsmhx";
+ };
+
+ cargoSha256 = "0iibjh2ll181j69vld1awvjgyv3xwmq0abh10651la4k4jpppx46";
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ postInstall = ''
+ installManPage texlab.1
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An implementation of the Language Server Protocol for LaTeX";
+ homepage = "https://texlab.netlify.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ doronbehar metadark ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tie/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tie/default.nix
new file mode 100644
index 000000000000..074523309b67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tie/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "tie";
+ version = "2.4";
+
+ src = fetchurl {
+ url = "http://mirrors.ctan.org/web/tie/${pname}-${version}.tar.gz";
+ sha256 = "1m5952kdfffiz33p1jw0wv7dh272mmw28mpxw9v7lkb352zv4xsj";
+ };
+
+ buildPhase = ''
+ cc tie.c -o tie
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp tie $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.ctan.org/tex-archive/web/tie";
+ description = "Allow multiple web change files";
+ platforms = with platforms; unix;
+ maintainers = with maintainers; [ vrthra ];
+ license = licenses.abstyles;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix
new file mode 100644
index 000000000000..4618906038eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tinyprog/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, python3Packages
+, fetchFromGitHub
+}:
+
+with python3Packages; buildPythonApplication rec {
+ pname = "tinyprog";
+ # `python setup.py --version` from repo checkout
+ version = "1.0.24.dev114+g${lib.substring 0 7 src.rev}";
+
+ src = fetchFromGitHub {
+ owner = "tinyfpga";
+ repo = "TinyFPGA-Bootloader";
+ rev = "97f6353540bf7c0d27f5612f202b48f41da75299";
+ sha256 = "0zbrvvb957z2lwbfd39ixqdsnd2w4wfjirwkqdrqm27bjz308731";
+ };
+
+ sourceRoot = "source/programmer";
+
+ propagatedBuildInputs = [
+ pyserial
+ jsonmerge
+ intelhex
+ tqdm
+ six
+ packaging
+ setuptools
+ pyusb
+ ];
+
+ nativeBuildInputs = [ setuptools_scm ];
+
+ preBuild = ''
+ export SETUPTOOLS_SCM_PRETEND_VERSION="${version}"
+ '';
+
+ meta = with lib; {
+ homepage = "https://github.com/tinyfpga/TinyFPGA-Bootloader/tree/master/programmer";
+ description = "Programmer for FPGA boards using the TinyFPGA USB Bootloader";
+ maintainers = with maintainers; [ emily ];
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
new file mode 100644
index 000000000000..3aff6c6d36cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
@@ -0,0 +1,27 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "tockloader";
+ version = "1.5.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ argcomplete
+ colorama
+ crcmod
+ pytoml
+ pyserial
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/tock/tockloader";
+ license = licenses.mit;
+ description = "Tool for programming Tock onto hardware boards";
+ maintainers = with maintainers; [ hexa ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tokei/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
new file mode 100644
index 000000000000..baf14b933dcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, darwin }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "tokei";
+ version = "12.0.4";
+
+ src = fetchFromGitHub {
+ owner = "XAMPPRocky";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0vj6xpp5ss82n1zxljy5893s8l1pdhar5xqay5vvglkp8bzblin6";
+ };
+
+ cargoSha256 = "02c2pdjzd49qznm1yj3rnli48267ajjdklrb1cpj0rhpirw4rh1j";
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+ libiconv darwin.apple_sdk.frameworks.Security
+ ];
+
+ # enable all output formats
+ cargoBuildFlags = [ "--features" "all" ];
+
+ meta = with stdenv.lib; {
+ description = "A program that allows you to count your code, quickly";
+ longDescription = ''
+ Tokei is a program that displays statistics about your code. Tokei will show number of files, total lines within those files and code, comments, and blanks grouped by language.
+ '';
+ homepage = "https://github.com/XAMPPRocky/tokei";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ gebner lilyball ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile
new file mode 100644
index 000000000000..3da9975913e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile
@@ -0,0 +1,4 @@
+source "https://rubygems.org"
+
+gem "travis"
+gem "pry", "~> 0.11.0"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock
new file mode 100644
index 000000000000..91df15a9bb65
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock
@@ -0,0 +1,71 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (5.2.4.3)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ addressable (2.7.0)
+ public_suffix (>= 2.0.2, < 5.0)
+ coderay (1.1.3)
+ concurrent-ruby (1.1.6)
+ ethon (0.12.0)
+ ffi (>= 1.3.0)
+ faraday (1.0.1)
+ multipart-post (>= 1.2, < 3)
+ faraday_middleware (1.0.0)
+ faraday (~> 1.0)
+ ffi (1.13.1)
+ gh (0.17.0)
+ activesupport (~> 5.0)
+ addressable (~> 2.4)
+ faraday (~> 1.0)
+ faraday_middleware (~> 1.0)
+ multi_json (~> 1.0)
+ net-http-persistent (~> 2.9)
+ net-http-pipeline
+ highline (2.0.3)
+ i18n (1.8.3)
+ concurrent-ruby (~> 1.0)
+ json (2.3.0)
+ launchy (2.4.3)
+ addressable (~> 2.3)
+ method_source (0.9.2)
+ minitest (5.14.1)
+ multi_json (1.14.1)
+ multipart-post (2.1.1)
+ net-http-persistent (2.9.4)
+ net-http-pipeline (1.0.1)
+ pry (0.11.3)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+ public_suffix (4.0.5)
+ pusher-client (0.6.2)
+ json
+ websocket (~> 1.0)
+ thread_safe (0.3.6)
+ travis (1.9.1)
+ faraday (~> 1.0)
+ faraday_middleware (~> 1.0)
+ gh (~> 0.13)
+ highline (~> 2.0)
+ json (~> 2.3)
+ launchy (~> 2.1, < 2.5.0)
+ pusher-client (~> 0.4)
+ typhoeus (~> 0.6, >= 0.6.8)
+ typhoeus (0.8.0)
+ ethon (>= 0.8.0)
+ tzinfo (1.2.7)
+ thread_safe (~> 0.1)
+ websocket (1.2.8)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ pry (~> 0.11.0)
+ travis
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/default.nix
new file mode 100644
index 000000000000..0be7721fe080
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv {
+ inherit ruby;
+ pname = "travis";
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "travis";
+
+ meta = with lib; {
+ description = "CLI and Ruby client library for Travis CI";
+ homepage = "https://github.com/travis-ci/travis.rb";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix
new file mode 100644
index 000000000000..e10475a916b1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix
@@ -0,0 +1,269 @@
+{
+ activesupport = {
+ dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
+ type = "gem";
+ };
+ version = "5.2.4.3";
+ };
+ addressable = {
+ dependencies = ["public_suffix"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ coderay = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+ type = "gem";
+ };
+ version = "1.1.3";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+ type = "gem";
+ };
+ version = "1.1.6";
+ };
+ ethon = {
+ dependencies = ["ffi"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gggrgkcq839mamx7a8jbnp2h7x2ykfn34ixwskwb0lzx2ak17g9";
+ type = "gem";
+ };
+ version = "0.12.0";
+ };
+ faraday = {
+ dependencies = ["multipart-post"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ faraday_middleware = {
+ dependencies = ["faraday"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
+ type = "gem";
+ };
+ version = "1.0.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ gh = {
+ dependencies = ["activesupport" "addressable" "faraday" "faraday_middleware" "multi_json" "net-http-persistent" "net-http-pipeline"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nj2dm2pahfa4d39y8csvjv5l3hpsm6yjq2y96vj2bqgg0qs26bj";
+ type = "gem";
+ };
+ version = "0.17.0";
+ };
+ highline = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+ type = "gem";
+ };
+ version = "1.8.3";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ launchy = {
+ dependencies = ["addressable"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "190lfbiy1vwxhbgn4nl4dcbzxvm049jwc158r2x7kq3g5khjrxa2";
+ type = "gem";
+ };
+ version = "2.4.3";
+ };
+ method_source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ minitest = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+ type = "gem";
+ };
+ version = "5.14.1";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+ type = "gem";
+ };
+ version = "1.14.1";
+ };
+ multipart-post = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+ type = "gem";
+ };
+ version = "2.1.1";
+ };
+ net-http-persistent = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y9fhaax0d9kkslyiqi1zys6cvpaqx9a0y0cywp24rpygwh4s9r4";
+ type = "gem";
+ };
+ version = "2.9.4";
+ };
+ net-http-pipeline = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bxjy33yhxwsbnld8xj3zv64ibgfjn9rjpiqkyd5ipmz50pww8v9";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1mh312k3y94sj0pi160wpia0ps8f4kmzvm505i6bvwynfdh7v30g";
+ type = "gem";
+ };
+ version = "0.11.3";
+ };
+ public_suffix = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+ type = "gem";
+ };
+ version = "4.0.5";
+ };
+ pusher-client = {
+ dependencies = ["json" "websocket"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "18ymxz34gmg7jff3h0nyzp5vdg5i06dbdxlrdl2nq4hf14qwj1f4";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ thread_safe = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+ type = "gem";
+ };
+ version = "0.3.6";
+ };
+ travis = {
+ dependencies = ["faraday" "faraday_middleware" "gh" "highline" "json" "launchy" "pusher-client" "typhoeus"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yizj5nqvyrfbyiv1kfwc33dylhsmk5l007z06djj152v04z63i3";
+ type = "gem";
+ };
+ version = "1.9.1";
+ };
+ typhoeus = {
+ dependencies = ["ethon"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "03x3fxjsnhgayl4s96h0a9975awlvx2v9nmx2ba0cnliglyczdr8";
+ type = "gem";
+ };
+ version = "0.8.0";
+ };
+ tzinfo = {
+ dependencies = ["thread_safe"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+ type = "gem";
+ };
+ version = "1.2.7";
+ };
+ websocket = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0f11rcn4qgffb1rq4kjfwi7di79w8840x9l74pkyif5arp0mb08x";
+ type = "gem";
+ };
+ version = "1.2.8";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/shell.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/shell.nix
new file mode 100644
index 000000000000..ddcf493bb468
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/travis/shell.nix
@@ -0,0 +1,11 @@
+# Env to update Gemfile.lock / gemset.nix
+
+with import <nixpkgs> {};
+stdenv.mkDerivation {
+ name = "env";
+ buildInputs = [
+ ruby.devEnv
+ gnumake
+ bundix
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uisp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uisp/default.nix
new file mode 100644
index 000000000000..ca51e0897337
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uisp/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation {
+ name = "uisp-20050207";
+
+ src = fetchurl {
+ url = "http://mirror.switch.ch/mirror/gentoo/distfiles/uisp-20050207.tar.gz";
+ sha256 = "1bncxp5yxh9r1yrp04vvhfiva8livi1pwic7v8xj99q09zrwahvw";
+ };
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ meta = {
+ description = "Tool for AVR microcontrollers which can interface to many hardware in-system programmers";
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "https://savannah.nongnu.org/projects/uisp";
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
new file mode 100644
index 000000000000..587896fce680
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/uncrustify/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, python }:
+
+stdenv.mkDerivation rec {
+ name = "${product}-${version}";
+ product = "uncrustify";
+ version = "0.71.0";
+
+ src = fetchFromGitHub {
+ owner = product;
+ repo = product;
+ rev = name;
+ sha256 = "1wyhkhn000yad94fnjj61h7lyvan6hig8wh7jxlnyp5wxdwki0pj";
+ };
+
+ nativeBuildInputs = [ cmake python ];
+
+ enableParallelBuilding = true;
+
+ meta = with stdenv.lib; {
+ description = "Source code beautifier for C, C++, C#, ObjectiveC, D, Java, Pawn and VALA";
+ homepage = "http://uncrustify.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix
new file mode 100644
index 000000000000..19dd907b73b9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/unifdef/default.nix
@@ -0,0 +1,31 @@
+{ fetchurl, stdenv }:
+
+stdenv.mkDerivation rec {
+ name = "unifdef-2.6";
+
+ src = fetchurl {
+ url = "https://github.com/fanf2/unifdef/archive/${name}.tar.gz";
+ sha256 = "1p5wr5ms9w8kijy9h7qs1mz36dlavdj6ngz2bks588w7a20kcqxj";
+ };
+
+ postUnpack = ''
+ substituteInPlace $sourceRoot/unifdef.c \
+ --replace '#include "version.h"' ""
+
+ substituteInPlace $sourceRoot/Makefile \
+ --replace "unifdef.c: version.h" "unifdef.c:"
+ '';
+
+ preBuild = ''
+ unset HOME
+ export DESTDIR=$out
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://dotat.at/prog/unifdef/";
+ description = "Selectively remove C preprocessor conditionals";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ maintainers = [ maintainers.vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix
new file mode 100644
index 000000000000..0bf902eccff8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl, pythonPackages, libiconv, jansson }:
+
+stdenv.mkDerivation {
+ pname = "universal-ctags";
+ version = "unstable-2019-07-30";
+
+ src = fetchFromGitHub {
+ owner = "universal-ctags";
+ repo = "ctags";
+ rev = "920e7910146915e5cae367bc9f135ffd8b042042";
+ sha256 = "14n3ix77rkhq6vq6kspmgjrmm0kg0f8cxikyqdq281sbnfq8bajn";
+ };
+
+ nativeBuildInputs = [ autoreconfHook pkgconfig pythonPackages.docutils ];
+ buildInputs = [ jansson ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
+
+ # to generate makefile.in
+ autoreconfPhase = ''
+ ./autogen.sh
+ '';
+
+ configureFlags = [ "--enable-tmpdir=/tmp" ];
+
+ postPatch = ''
+ # Remove source of non-determinism
+ substituteInPlace main/options.c \
+ --replace "printf (\" Compiled: %s, %s\n\", __DATE__, __TIME__);" ""
+ '';
+
+ postConfigure = ''
+ sed -i 's|/usr/bin/env perl|${perl}/bin/perl|' misc/optlib2c
+ '';
+
+ doCheck = true;
+
+ checkFlags = [ "units" ];
+
+ meta = with stdenv.lib; {
+ description = "A maintained ctags implementation";
+ homepage = "https://ctags.io/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.unix;
+ # universal-ctags is preferred over emacs's ctags
+ priority = 1;
+ maintainers = [ maintainers.mimame ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/sed-test.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/sed-test.patch
new file mode 100644
index 000000000000..7c44d699d79a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/universal-ctags/sed-test.patch
@@ -0,0 +1,12 @@
+--- a/Tmain/sorted-help-message.d/run.sh 2017-01-10 11:20:51.515093465 +0100
++++ b/Tmain/sorted-help-message.d/run.sh 2017-01-10 11:17:56.639213720 +0100
+@@ -27,7 +27,7 @@
+ extract_long_options()
+ {
+ sed -n '/Usage:/,$p' | \
+- sed -n 's/\(^ --[:alnum:][<>[:alnum:]_-]*\).*/\1/p'
++ sed -n 's/\(^ --[[:alnum:]][<>[:alnum:]_-]*\).*/\1/p'
+ }
+
+ extract_debug_options()
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
new file mode 100644
index 000000000000..d55caab22e69
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/configurable-usb-modeswitch.patch
@@ -0,0 +1,283 @@
+Index: usb-modeswitch-2.6.0/Makefile
+===================================================================
+--- usb-modeswitch-2.6.0.orig/Makefile
++++ usb-modeswitch-2.6.0/Makefile
+@@ -5,17 +5,24 @@ CFLAGS += -Wall -Wno-deprecated-dec
+ LIBS = `pkg-config --libs --cflags libusb-1.0`
+ RM = /bin/rm -f
+ OBJS = usb_modeswitch.c
+-PREFIX = $(DESTDIR)/usr
+-ETCDIR = $(DESTDIR)/etc
++PREFIX = /usr/local
++ETCDIR = $(PREFIX)/etc
+ SYSDIR = $(ETCDIR)/systemd/system
+ UPSDIR = $(ETCDIR)/init
+-UDEVDIR = $(DESTDIR)/lib/udev
++UDEVDIR = $(PREFIX)/lib/udev
+ SBINDIR = $(PREFIX)/sbin
+ MANDIR = $(PREFIX)/share/man/man1
+
++USE_UPSTART=$(shell if command -v initctl > /dev/null; then echo "true"; fi)
++USE_SYSTEMD=$(shell if command -v systemctl > /dev/null; then echo "true"; fi)
++
+ .PHONY: clean install install-common uninstall \
+ dispatcher-script dispatcher-dynlink dispatcher-statlink \
+- install-script install-dynlink install-statlink
++ install-script install-dynlink install-statlink \
++ install-upstart install-systemd \
++ configure-dispatcher configure-script \
++ configure-upstart configure-systemd \
++ configure
+
+ all: all-with-script-dispatcher
+
+@@ -28,7 +35,25 @@ all-with-statlink-dispatcher: $(PROG) di
+ $(PROG): $(OBJS) usb_modeswitch.h
+ $(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)
+
+-dispatcher-script: usb_modeswitch_dispatcher.tcl
++configure-dispatcher:
++ sed -i \
++ -e 's,^\(set setup(sbindir) \).*$$,\1$(SBINDIR),' \
++ -e 's,^\(set setup(etcdir) \).*$$,\1$(ETCDIR),' \
++ usb_modeswitch_dispatcher.tcl
++
++configure-script:
++ sed -i -e 's,^\(SBINDIR=\).*$$,\1$(SBINDIR),' usb_modeswitch.sh
++
++configure-systemd:
++ sed -i -e 's,@sbindir@,$(SBINDIR),' usb_modeswitch@.service
++
++configure-upstart:
++ sed -i -e 's,@sbindir@,$(SBINDIR),' usb-modeswitch-upstart.conf
++
++configure: configure-dispatcher configure-script \
++ configure-systemd configure-upstart
++
++dispatcher-script: configure-dispatcher usb_modeswitch_dispatcher.tcl
+ DISPATCH=dispatcher-script
+ cp -f usb_modeswitch_dispatcher.tcl usb_modeswitch_dispatcher
+
+@@ -53,16 +78,28 @@ distclean: clean
+ # If the systemd folder is present, install the service for starting the dispatcher
+ # If not, use the dispatcher directly from the udev rule as in previous versions
+
+-install-common: $(PROG) $(DISPATCH)
+- install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch
+- install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch
+- install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf
+- install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1
+- install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1
+- install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
++install-common: $(PROG) configure $(DISPATCH)
++ install -D --mode=755 usb_modeswitch $(DESTDIR)$(SBINDIR)/usb_modeswitch
++ install -D --mode=755 usb_modeswitch.sh $(DESTDIR)$(UDEVDIR)/usb_modeswitch
++ install -D --mode=644 usb_modeswitch.conf $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
++ install -D --mode=644 usb_modeswitch.1 $(DESTDIR)$(MANDIR)/usb_modeswitch.1
++ install -D --mode=644 usb_modeswitch_dispatcher.1 $(DESTDIR)$(MANDIR)/usb_modeswitch_dispatcher.1
++ install -D --mode=755 usb_modeswitch_dispatcher $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
+ install -d $(DESTDIR)/var/lib/usb_modeswitch
+- test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1
+- test -d $(SYSDIR) -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1
++
++install-upstart:
++ install -D --mode=644 usb-modeswitch-upstart.conf $(DESTDIR)$(UPSDIR)/usb-modeswitch-upstart.conf
++
++install-systemd:
++ install -D --mode=644 usb_modeswitch@.service $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
++
++ifeq ($(USE_UPSTART),true)
++install-common: install-upstart
++endif
++
++ifeq ($(USE_SYSTEMD),true)
++install-common: install-systemd
++endif
+
+ install: install-script
+
+@@ -73,10 +110,10 @@ install-dynlink: dispatcher-dynlink inst
+ install-statlink: dispatcher-statlink install-common
+
+ uninstall:
+- $(RM) $(SBINDIR)/usb_modeswitch
+- $(RM) $(SBINDIR)/usb_modeswitch_dispatcher
+- $(RM) $(UDEVDIR)/usb_modeswitch
+- $(RM) $(ETCDIR)/usb_modeswitch.conf
+- $(RM) $(MANDIR)/usb_modeswitch.1
++ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch
++ $(RM) $(DESTDIR)$(SBINDIR)/usb_modeswitch_dispatcher
++ $(RM) $(DESTDIR)$(UDEVDIR)/usb_modeswitch
++ $(RM) $(DESTDIR)$(ETCDIR)/usb_modeswitch.conf
++ $(RM) $(DESTDIR)$(MANDIR)/usb_modeswitch.1
+ $(RM) -R $(DESTDIR)/var/lib/usb_modeswitch
+- $(RM) $(SYSDIR)/usb_modeswitch@.service
++ $(RM) $(DESTDIR)$(SYSDIR)/usb_modeswitch@.service
+Index: usb-modeswitch-2.6.0/usb-modeswitch-upstart.conf
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb-modeswitch-upstart.conf
++++ usb-modeswitch-2.6.0/usb-modeswitch-upstart.conf
+@@ -1,5 +1,5 @@
+ start on usb-modeswitch-upstart
+ task
+ script
+- exec /usr/sbin/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
++ exec @sbindir@/usb_modeswitch_dispatcher --switch-mode $UMS_PARAM
+ end script
+Index: usb-modeswitch-2.6.0/usb_modeswitch.sh
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch.sh
++++ usb-modeswitch-2.6.0/usb_modeswitch.sh
+@@ -1,5 +1,9 @@
+ #!/bin/sh
+ # part of usb_modeswitch 2.6.0
++
++# Compile time configuration, injected by the Makefile
++SBINDIR=/usr/sbin
++
+ device_in()
+ {
+ if [ ! -e /var/lib/usb_modeswitch/$1 ]; then
+@@ -37,7 +41,7 @@ if [ $(expr "$1" : "--.*") ]; then
+ v_id=$3
+ fi
+ fi
+-PATH=/sbin:/usr/sbin:$PATH
++
+ case "$1" in
+ --driver-bind)
+ # driver binding code removed
+@@ -46,9 +50,7 @@ case "$1" in
+ --symlink-name)
+ device_in "link_list" $v_id $p_id
+ if [ "$?" = "1" ]; then
+- if [ -e "/usr/sbin/usb_modeswitch_dispatcher" ]; then
+- exec usb_modeswitch_dispatcher $1 $2 2>>/dev/null
+- fi
++ exec $SBINDIR/usb_modeswitch_dispatcher $1 $2 2>>/dev/null
+ fi
+ exit 0
+ ;;
+@@ -61,15 +63,13 @@ if [ "$p2" = "" -a "$p1" != "" ]; then
+ p2=$p1
+ fi
+
+-PATH=/bin:/sbin:/usr/bin:/usr/sbin
+-init_path=`readlink -f /sbin/init`
+-if [ `basename $init_path` = "systemd" ]; then
++if command -v systemctl > /dev/null; then
+ systemctl --no-block restart usb_modeswitch@$p2.service
+-elif [ -e "/etc/init/usb-modeswitch-upstart.conf" ]; then
++elif command -v initctl > /dev/null; then
+ initctl emit --no-wait usb-modeswitch-upstart UMS_PARAM=$p2
+ else
+ # only old distros, new udev will kill all subprocesses
+ exec 1<&- 2<&- 5<&- 7<&-
+- exec usb_modeswitch_dispatcher --switch-mode $p2 &
++ exec $SBINDIR/usb_modeswitch_dispatcher --switch-mode $p2 &
+ fi
+ exit 0
+Index: usb-modeswitch-2.6.0/usb_modeswitch@.service
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch@.service
++++ usb-modeswitch-2.6.0/usb_modeswitch@.service
+@@ -3,6 +3,6 @@ Description=USB_ModeSwitch_%i
+
+ [Service]
+ Type=oneshot
+-ExecStart=/usr/sbin/usb_modeswitch_dispatcher --switch-mode %i
++ExecStart=@sbindir@/usb_modeswitch_dispatcher --switch-mode %i
+ #ExecStart=/bin/echo %i
+
+Index: usb-modeswitch-2.6.0/usb_modeswitch_dispatcher.tcl
+===================================================================
+--- usb-modeswitch-2.6.0.orig/usb_modeswitch_dispatcher.tcl
++++ usb-modeswitch-2.6.0/usb_modeswitch_dispatcher.tcl
+@@ -12,6 +12,16 @@
+ # Part of usb-modeswitch-2.6.0 package
+ # (C) Josua Dietze 2009-2019
+
++# Compile-time configuration, injected by the Makefile.
++set setup(sbindir) /usr/sbin
++set setup(etcdir) /etc
++
++# External dependency default location
++set setup(dbdir) /usr/share/usb_modeswitch
++
++# Derived configuration
++set setup(dbdir_etc) $setup(etcdir)/usb_modeswitch.d
++
+ set arg0 [lindex $argv 0]
+ if [regexp {\.tcl$} $arg0] {
+ if [file exists $arg0] {
+@@ -115,10 +125,8 @@ if {![regexp {(.*?):.*$} $arg1 d device]
+ }
+ }
+
+-set setup(dbdir) /usr/share/usb_modeswitch
+-set setup(dbdir_etc) /etc/usb_modeswitch.d
+ if {![file exists $setup(dbdir)] && ![file exists $setup(dbdir_etc)]} {
+- Log "\nError: no config database found in /usr/share or /etc. Exit"
++ Log "\nError: no config database found in $setup(dbdir) or $setup(dbdir_etc). Exit"
+ SafeExit
+ }
+
+@@ -285,7 +293,7 @@ if {$config(NoMBIMCheck)==0 && $usb(bNum
+ if [CheckMBIM] {
+ Log " driver for MBIM devices is available"
+ Log "Find MBIM configuration number ..."
+- if [catch {set cfgno [exec /usr/sbin/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
++ if [catch {set cfgno [exec $setup(sbindir)/usb_modeswitch -j -Q $busParam $devParam -v $usb(idVendor) -p $usb(idProduct)]} err] {
+ Log "Error when trying to find MBIM configuration, switch to legacy modem mode"
+ } else {
+ set cfgno [string trim $cfgno]
+@@ -321,7 +329,7 @@ if {$report == ""} {
+ # Now we are actually switching
+ if $flags(logging) {
+ Log "Command line:\nusb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f \$flags(config)"
+- catch {set report [exec /usr/sbin/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
++ catch {set report [exec $setup(sbindir)/usb_modeswitch -W -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ Log "\nVerbose debug output of usb_modeswitch and libusb follows"
+ Log "(Note that some USB errors are to be expected in the process)"
+ Log "--------------------------------"
+@@ -329,7 +337,7 @@ if {$report == ""} {
+ Log "--------------------------------"
+ Log "(end of usb_modeswitch output)\n"
+ } else {
+- catch {set report [exec /usr/sbin/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
++ catch {set report [exec $setup(sbindir)/usb_modeswitch -Q -D $configParam $busParam $devParam -v $usb(idVendor) -p $usb(idProduct) -f "$flags(config)" 2>@1]} report
+ }
+ }
+
+@@ -522,12 +530,12 @@ return 1
+
+ proc {ParseGlobalConfig} {path} {
+
+-global flags
++global flags setup
+ set configFile ""
+ if [string length $path] {
+ set places [list $path]
+ } else {
+- set places [list /etc/usb_modeswitch.conf /etc/sysconfig/usb_modeswitch /etc/default/usb_modeswitch]
++ set places [list $setup(etcdir)/usb_modeswitch.conf $setup(etcdir)/sysconfig/usb_modeswitch $setup(etcdir)/default/usb_modeswitch]
+ }
+ foreach cfg $places {
+ if [file exists $cfg] {
+@@ -923,10 +931,12 @@ proc {SysLog} {msg} {
+
+ global flags
+ if {![info exists flags(logger)]} {
+- set flags(logger) ""
+- foreach fn {/bin/logger /usr/bin/logger} {
+- if [file exists $fn] {
+- set flags(logger) $fn
++ set flags(logger) [exec sh -c "command -v logger || true"]
++ if {$flags(logger) == ""} {
++ foreach fn {/bin/logger /usr/bin/logger} {
++ if [file exists $fn] {
++ set flags(logger) $fn
++ }
+ }
+ }
+ Log "Logger is $flags(logger)"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix
new file mode 100644
index 000000000000..6280b103ab60
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/data.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, tcl, usb-modeswitch }:
+
+stdenv.mkDerivation rec {
+ pname = "usb-modeswitch-data";
+ version = "20191128";
+
+ src = fetchurl {
+ url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2";
+ sha256 = "1ygahl3r26r38ai8yyblq9nhf3v5i6n6r6672p5wf88wg5h9n0rz";
+ };
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "DESTDIR=$(out)"
+ ];
+
+ prePatch = ''
+ sed -i 's@usb_modeswitch@${usb-modeswitch}/lib/udev/usb_modeswitch@g' 40-usb_modeswitch.rules
+ '';
+
+ # we add tcl here so we can patch in support for new devices by dropping config into
+ # the usb_modeswitch.d directory
+ nativeBuildInputs = [ tcl ];
+
+ meta = with stdenv.lib; {
+ description = "Device database and the rules file for 'multi-mode' USB devices";
+ inherit (usb-modeswitch.meta) license maintainers platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix
new file mode 100644
index 000000000000..731ac836412a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/usb-modeswitch/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchurl, pkgconfig, makeWrapper
+, libusb1, tcl, utillinux, coreutils, bash }:
+
+stdenv.mkDerivation rec {
+ pname = "usb-modeswitch";
+ version = "2.6.0";
+
+ src = fetchurl {
+ url = "http://www.draisberghof.de/usb_modeswitch/${pname}-${version}.tar.bz2";
+ sha256 = "18wbbxc5cfsmikba0msdvd5qlaga27b32nhrzicyd9mdddp265f2";
+ };
+
+ patches = [ ./configurable-usb-modeswitch.patch ];
+
+ # Remove attempts to write to /etc and /var/lib.
+ postPatch = ''
+ sed -i \
+ -e '/^\tinstall .* usb_modeswitch.conf/s,$(ETCDIR),$(out)/etc,' \
+ -e '\,^\tinstall -d .*/var/lib/usb_modeswitch,d' \
+ Makefile
+ '';
+
+ makeFlags = [
+ "PREFIX=$(out)"
+ "ETCDIR=/etc"
+ "USE_UPSTART=false"
+ "USE_SYSTEMD=true"
+ "SYSDIR=$(out)/lib/systemd/system"
+ "UDEVDIR=$(out)/lib/udev"
+ ];
+
+ postFixup = ''
+ wrapProgram $out/bin/usb_modeswitch_dispatcher \
+ --set PATH ${lib.makeBinPath [ utillinux coreutils bash ]}
+ '';
+
+ buildInputs = [ libusb1 tcl ];
+ nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "A mode switching tool for controlling 'multi-mode' USB devices";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ marcweber peterhoeg ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix
new file mode 100644
index 000000000000..a44140c1445f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/vtable-dumper/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, libelf }:
+
+stdenv.mkDerivation rec {
+ pname = "vtable-dumper";
+ version = "1.2";
+
+ src = fetchFromGitHub {
+ owner = "lvc";
+ repo = "vtable-dumper";
+ rev = version;
+ sha256 = "0sl7lnjr2l4c2f7qaazvpwpzsp4gckkvccfam88wcq9f7j9xxbyp";
+ };
+
+ buildInputs = [ libelf ];
+ makeFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/lvc/vtable-dumper";
+ description = "A tool to list content of virtual tables in a C++ shared library";
+ license = licenses.lgpl21;
+ maintainers = [ maintainers.bhipple ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile
new file mode 100644
index 000000000000..fc739389e84e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'watson-ruby'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile.lock
new file mode 100644
index 000000000000..9e3c166400f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ json (2.1.0)
+ watson-ruby (1.6.3)
+ json
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ watson-ruby
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/default.nix
new file mode 100644
index 000000000000..81f5430371a0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, bundlerEnv, ruby, bundlerUpdateScript }:
+
+stdenv.mkDerivation rec {
+ pname = "watson-ruby";
+ version = (import ./gemset.nix).watson-ruby.version;
+
+ phases = [ "installPhase" ];
+
+ installPhase = let
+ env = bundlerEnv {
+ name = "watson-ruby-gems-${version}";
+ inherit ruby;
+ # expects Gemfile, Gemfile.lock and gemset.nix in the same directory
+ gemdir = ./.;
+ };
+ in ''
+ mkdir -p $out/bin
+ ln -s ${env}/bin/watson $out/bin/watson
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "watson-ruby";
+
+ meta = with stdenv.lib; {
+ description = "An inline issue manager";
+ homepage = "https://goosecode.com/watson/";
+ license = with licenses; mit;
+ maintainers = with maintainers; [ robertodr nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/gemset.nix
new file mode 100644
index 000000000000..a3bb144899c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/watson-ruby/gemset.nix
@@ -0,0 +1,18 @@
+{
+ json = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ watson-ruby = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1d5m29nr0i030q8ygmbapwri5ndcg2q6lf8a15bk79lfcp9xyj9w";
+ type = "gem";
+ };
+ version = "1.6.3";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
new file mode 100644
index 000000000000..c882d6243fa0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/whatstyle/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3, fetchFromGitHub, clang-unwrapped }:
+
+python3.pkgs.buildPythonApplication rec {
+ pname = "whatstyle";
+ version = "0.1.8";
+ src = fetchFromGitHub {
+ owner = "mikr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "08lfd8h5fnvy5gci4f3an411cypad7p2yiahvbmlp51r9xwpaiwr";
+ };
+
+ # Fix references to previous version, to avoid confusion:
+ postPatch = ''
+ substituteInPlace setup.py --replace 0.1.6 ${version}
+ substituteInPlace ${pname}.py --replace 0.1.6 ${version}
+ '';
+
+ checkInputs = [ clang-unwrapped /* clang-format */ ];
+
+ doCheck = false; # 3 or 4 failures depending on version, haven't investigated.
+
+ meta = with stdenv.lib; {
+ description = "Find a code format style that fits given source files";
+ homepage = "https://github.com/mikr/whatstyle";
+ license = licenses.mit;
+ maintainers = with maintainers; [ dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
new file mode 100644
index 000000000000..d900d14e33c2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/wishbone-tool/default.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, rustPlatform, libusb-compat-0_1 }:
+
+let
+ version = "0.6.9";
+ src = fetchFromGitHub {
+ owner = "litex-hub";
+ repo = "wishbone-utils";
+ rev = "v${version}";
+ sha256 = "0gq359ybxnqvcp93cn154bs9kwlai62gnm71yvl2nhzjdlcr3fhp";
+ };
+in
+rustPlatform.buildRustPackage {
+ pname = "wishbone-tool";
+ inherit version;
+
+ src = "${src}/wishbone-tool";
+
+ # N.B. The cargo vendor consistency checker searches in "source" for lockfile
+ cargoDepsHook = ''
+ ln -s wishbone-tool source
+ '';
+ cargoSha256 = "0d5kcwy0cgxqfxf2xysw65ng84q4knhp4fgvh6dwqhf0nsca9gvs";
+
+ buildInputs = [ libusb-compat-0_1 ];
+
+ meta = with lib; {
+ description = "Manipulate a Wishbone device over some sort of bridge";
+ homepage = "https://github.com/litex-hub/wishbone-utils";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ edef ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xc3sprog/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xc3sprog/default.nix
new file mode 100644
index 000000000000..1ccd6c2ec4f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xc3sprog/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchsvn, cmake, libusb-compat-0_1, libftdi }:
+
+# The xc3sprog project doesn't seem to make proper releases, they only put out
+# prebuilt binary subversion snapshots on sourceforge.
+
+stdenv.mkDerivation rec {
+ version = "787";
+ pname = "xc3sprog";
+
+ src = fetchsvn {
+ url = "https://svn.code.sf.net/p/xc3sprog/code/trunk";
+ sha256 = "1rfhms3i7375kdlg0sdg5k52ix3xv5llj2dr30vamyg7pk74y8rx";
+ rev = version;
+ };
+
+ buildInputs = [ cmake libusb-compat-0_1 libftdi ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line tools for programming FPGAs, microcontrollers and PROMs via JTAG";
+ homepage = "http://xc3sprog.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix
new file mode 100644
index 000000000000..c187ad42c0e9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/xxdiff/default.nix
@@ -0,0 +1,51 @@
+{ lib, mkDerivation, fetchFromBitbucket, docutils, bison, flex, qmake
+, qtbase
+}:
+
+mkDerivation rec {
+ pname = "xxdiff";
+ version = "5.0b1";
+
+ src = fetchFromBitbucket {
+ owner = "blais";
+ repo = pname;
+ rev = "5e5f885dfc43559549a81c59e9e8c9525306356a";
+ sha256 = "0gbvxrkwkbvag3298j89smszghpr8ilxxfb0cvsknfqdf15b296w";
+ };
+
+ nativeBuildInputs = [ bison docutils flex qmake ];
+
+ buildInputs = [ qtbase ];
+
+ dontUseQmakeConfigure = true;
+
+ # c++11 and above is needed for building with Qt 5.9+
+ NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
+
+ sourceRoot = "source/src";
+
+ postPatch = ''
+ substituteInPlace xxdiff.pro --replace ../bin ./bin
+ '';
+
+ preConfigure = ''
+ make -f Makefile.bootstrap
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ install -Dm555 -t $out/bin ./bin/xxdiff
+ install -Dm444 -t $out/share/doc/${pname} ${src}/README
+
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Graphical file and directories comparator and merge tool";
+ homepage = "http://furius.ca/xxdiff/";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ pSub raskin ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
new file mode 100644
index 000000000000..02298d93b8af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/ycmd/default.nix
@@ -0,0 +1,99 @@
+{ stdenv, lib, fetchgit, cmake, llvmPackages, boost, python
+, gocode ? null
+, godef ? null
+, gotools ? null
+, nodePackages ? null
+, rustracerd ? null
+, fixDarwinDylibNames, Cocoa ? null
+}:
+
+stdenv.mkDerivation {
+ pname = "ycmd";
+ version = "2020-02-22";
+ disabled = !python.isPy3k;
+
+ src = fetchgit {
+ url = "https://github.com/Valloric/ycmd.git";
+ rev = "9a6b86e3a156066335b678c328f226229746bae5";
+ sha256 = "1c5axdngxaxj5vc6lr8sxb99mr5adsm1dnjckaxc23kq78pc8cn7";
+ };
+
+ nativeBuildInputs = [ cmake ];
+ buildInputs = [ boost llvmPackages.libclang ]
+ ++ stdenv.lib.optional stdenv.isDarwin [ fixDarwinDylibNames Cocoa ];
+
+ buildPhase = ''
+ export EXTRA_CMAKE_ARGS=-DPATH_TO_LLVM_ROOT=${llvmPackages.clang-unwrapped}
+ ${python.interpreter} build.py --system-libclang --clang-completer --system-boost
+ '';
+
+ dontConfigure = true;
+
+ # remove the tests
+ #
+ # make __main__.py executable and add shebang
+ #
+ # copy over third-party libs
+ # note: if we switch to using our packaged libs, we'll need to symlink them
+ # into the same spots, as YouCompleteMe (the vim plugin) expects those paths
+ # to be available
+ #
+ # symlink completion backends where ycmd expects them
+ installPhase = ''
+ rm -rf ycmd/tests
+
+ chmod +x ycmd/__main__.py
+ sed -i "1i #!${python.interpreter}\
+ " ycmd/__main__.py
+
+ mkdir -p $out/lib/ycmd
+ cp -r ycmd/ CORE_VERSION libclang.so.* libclang.dylib* ycm_core.so $out/lib/ycmd/
+
+ mkdir -p $out/bin
+ ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd
+
+ # Copy everything: the structure of third_party has been known to change.
+ # When linking our own libraries below, do so with '-f'
+ # to clobber anything we may have copied here.
+ mkdir -p $out/lib/ycmd/third_party
+ cp -r third_party/* $out/lib/ycmd/third_party/
+
+ '' + lib.optionalString (gocode != null) ''
+ TARGET=$out/lib/ycmd/third_party/gocode
+ mkdir -p $TARGET
+ ln -sf ${gocode}/bin/gocode $TARGET
+ '' + lib.optionalString (godef != null) ''
+ TARGET=$out/lib/ycmd/third_party/godef
+ mkdir -p $TARGET
+ ln -sf ${godef}/bin/godef $TARGET
+ '' + lib.optionalString (gotools != null) ''
+ TARGET=$out/lib/ycmd/third_party/go/src/golang.org/x/tools/cmd/gopls
+ mkdir -p $TARGET
+ ln -sf ${gotools}/bin/gopls $TARGET
+ '' + lib.optionalString (nodePackages != null) ''
+ TARGET=$out/lib/ycmd/third_party/tsserver
+ ln -sf ${nodePackages.typescript} $TARGET
+ '' + lib.optionalString (rustracerd != null) ''
+ TARGET=$out/lib/ycmd/third_party/racerd/target/release
+ mkdir -p $TARGET
+ ln -sf ${rustracerd}/bin/racerd $TARGET
+ '';
+
+ # fixup the argv[0] and replace __file__ with the corresponding path so
+ # python won't be thrown off by argv[0]
+ postFixup = ''
+ substituteInPlace $out/lib/ycmd/ycmd/__main__.py \
+ --replace $out/lib/ycmd/ycmd/__main__.py \
+ $out/bin/ycmd \
+ --replace __file__ \
+ "'$out/lib/ycmd/ycmd/__main__.py'"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A code-completion and comprehension server";
+ homepage = "https://github.com/Valloric/ycmd";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ rasendubi cstrahan lnl7 ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/misc/yodl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/yodl/default.nix
new file mode 100644
index 000000000000..758bebb57df8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/misc/yodl/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitLab, perl, icmake, utillinux }:
+
+stdenv.mkDerivation rec {
+ pname = "yodl";
+ version = "4.02.02";
+
+ nativeBuildInputs = [ icmake ];
+
+ buildInputs = [ perl ];
+
+ src = fetchFromGitLab {
+ sha256 = "1kf4h99p9i35fgas8z5wdy2qpd7gqfd645b5z7mfssjzsfdrv745";
+ rev = version;
+ repo = "yodl";
+ owner = "fbb-git";
+ };
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */yodl)
+ '';
+
+ preConfigure = ''
+ patchShebangs ./build
+ patchShebangs scripts/
+ substituteInPlace INSTALL.im --replace /usr $out
+ substituteInPlace macros/rawmacros/startdoc.pl --replace /usr/bin/perl ${perl}/bin/perl
+ substituteInPlace scripts/yodl2whatever.in --replace getopt ${utillinux}/bin/getopt
+ '';
+
+ # Set TERM because icmbuild calls tput.
+ TERM = "xterm";
+
+ buildPhase = ''
+ ./build programs
+ ./build macros
+ ./build man
+ '';
+
+ installPhase = ''
+ ./build install programs
+ ./build install macros
+ ./build install man
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A package that implements a pre-document language and tools to process it";
+ homepage = "https://fbb-git.gitlab.io/yodl/";
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ pSub ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mockgen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mockgen/default.nix
new file mode 100644
index 000000000000..104988eb213b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mockgen/default.nix
@@ -0,0 +1,23 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
+ pname = "mockgen";
+ version = "1.4.4";
+ src = fetchFromGitHub {
+ owner = "golang";
+ repo = "mock";
+ rev = "v${version}";
+ sha256 = "1lj0dvd6div4jaq1s0afpwqaq9ah8cxhkq93wii2ably1xmp2l0a";
+ };
+ vendorSha256 = "1md4cg1zzhc276sc7i2v0xvg5pf6gzy0n9ga2g1lx3d572igq1wy";
+
+ doCheck = false;
+
+ subPackages = [ "mockgen" ];
+
+ meta = with lib; {
+ description = "GoMock is a mocking framework for the Go programming language";
+ homepage = "https://github.com/golang/mock";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ bouk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mod/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mod/default.nix
new file mode 100644
index 000000000000..32fd2258daaf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mod/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "mod";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "marwan-at-work";
+ repo = "mod";
+ rev = "v${version}";
+ sha256 = "1n0pipbq4fjban8hsxhyl5w8xrl4ai1pvgd02i1j1awmm2l3ykzl";
+ };
+
+ vendorSha256 = "032s62rjjq7bqiz5fg17yfkq4j4dsbl6vhvs1wf2sg8jvbqmvdwn";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/mod" ];
+
+ meta = with lib; {
+ description = "Automated Semantic Import Versioning Upgrades for Go";
+ longDescription = ''
+ Command line tool to upgrade/downgrade Semantic Import Versioning in Go
+ Modules.
+ '';
+ homepage = "https://github.com/marwan-at-work/mod";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/modd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/modd/default.nix
new file mode 100644
index 000000000000..5c63447fdc5f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/modd/default.nix
@@ -0,0 +1,20 @@
+{ buildGoPackage, fetchFromGitHub, stdenv }:
+
+buildGoPackage rec {
+ pname = "modd";
+ version = "0.8";
+ src = fetchFromGitHub {
+ owner = "cortesi";
+ repo = "modd";
+ rev = "v${version}";
+ sha256 = "1dmfpbpcvbx4sl4q1hwbfpalq1ml03w1cca7x40y18g570qk7aq5";
+ };
+ goPackagePath = "github.com/cortesi/modd";
+ subPackages = [ "cmd/modd" ];
+ meta = with stdenv.lib; {
+ description = "A flexible developer tool that runs processes and responds to filesystem changes";
+ homepage = "https://github.com/cortesi/modd";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kierdavis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mpfshell/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mpfshell/default.nix
new file mode 100644
index 000000000000..69048acb5baf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mpfshell/default.nix
@@ -0,0 +1,23 @@
+{ lib, python3Packages, fetchFromGitHub }:
+
+python3Packages.buildPythonPackage rec {
+ name = "mpfshell-${version}";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ owner = "wendlers";
+ repo = "mpfshell";
+ rev = version;
+ sha256 = "1n4ap4yfii54y125f9n9krc0lc0drwg3hsq4z6g89xbswdx9sygr";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyserial colorama websocket_client
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/wendlers/mpfshell";
+ description = "A simple shell based file explorer for ESP8266 Micropython based devices";
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/msgpack-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/msgpack-tools/default.nix
new file mode 100644
index 000000000000..65bc8feab6b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/msgpack-tools/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl, fetchFromGitHub, cmake, unzip }:
+stdenv.mkDerivation rec {
+ pname = "msgpack-tools";
+ version = "0.6";
+
+ src = fetchFromGitHub {
+ owner = "ludocode";
+ repo = "msgpack-tools";
+ rev = "v${version}";
+ sha256 = "1ygjk25zlpqjckxgqmahnz999704zy2bd9id6hp5jych1szkjgs5";
+ };
+
+ libb64 = fetchurl {
+ url = "mirror://sourceforge/libb64/libb64-1.2.1.zip";
+ sha256 = "1chlcc8qggzxnbpy5wrda533xyz38dk20w9wl4srrzawm45ny410";
+ };
+
+ rapidjson = fetchurl {
+ url = "https://github.com/miloyip/rapidjson/archive/99ba17bd66a85ec64a2f322b68c2b9c3b77a4391.tar.gz";
+ sha256 = "0jxgyy5n0lf9w36dycwwgz2wici4z9dnxlsn0z6m23zaa47g3wyw";
+ };
+
+ mpack = fetchurl {
+ url = "https://github.com/ludocode/mpack/archive/df17e83f0fa8571b9cd0d8ccf38144fa90e244d1.tar.gz";
+ sha256 = "1br8g3rf86h8z8wbqkd50aq40953862lgn0xk7cy68m07fhqc3pg";
+ };
+
+ postUnpack = ''
+ mkdir $sourceRoot/contrib
+ cp ${rapidjson} $sourceRoot/contrib/rapidjson-99ba17bd66a85ec64a2f322b68c2b9c3b77a4391.tar.gz
+ cp ${libb64} $sourceRoot/contrib/libb64-1.2.1.zip
+ cp ${mpack} $sourceRoot/contrib/mpack-df17e83f0fa8571b9cd0d8ccf38144fa90e244d1.tar.gz
+ '';
+
+
+ buildInputs = [ cmake unzip ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line tools for converting between MessagePack and JSON";
+ homepage = "https://github.com/ludocode/msgpack-tools";
+ license = licenses.mit;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ alibabzo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/mustache-go/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/mustache-go/default.nix
new file mode 100644
index 000000000000..7bcf72df55ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/mustache-go/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "mustache-go";
+ version = "1.2.0";
+
+ goPackagePath = "github.com/cbroglie/mustache";
+
+ src = fetchFromGitHub {
+ owner = "cbroglie";
+ repo = "mustache";
+ rev = "v${version}";
+ sha256 = "0mnh5zbpfwymddm1dppg9i9d1r8jqyg03z2gl6c5a8fgbrnxpjvc";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/cbroglie/mustache";
+ description = "The mustache template language in Go";
+ license = [ licenses.mit ];
+ maintainers = [ maintainers.Zimmi48 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/nailgun/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/nailgun/default.nix
new file mode 100644
index 000000000000..84e5a6b1d9fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/nailgun/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchMavenArtifact, fetchFromGitHub, jre, makeWrapper }:
+
+let
+ version = "1.0.0";
+ nailgun-server = fetchMavenArtifact {
+ groupId = "com.facebook";
+ artifactId = "nailgun-server";
+ inherit version;
+ sha256 = "1mk8pv0g2xg9m0gsb96plbh6mc24xrlyrmnqac5mlbl4637l4q95";
+ };
+in
+stdenv.mkDerivation {
+ pname = "nailgun";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = "nailgun";
+ rev = "nailgun-all-v${version}";
+ sha256 = "1syyk4ss5vq1zf0ma00svn56lal53ffpikgqgzngzbwyksnfdlh6";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ postInstall = ''
+ makeWrapper ${jre}/bin/java $out/bin/ng-server \
+ --add-flags '-classpath ${nailgun-server.jar}:$CLASSPATH com.facebook.nailgun.NGServer'
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead";
+ homepage = "http://www.martiansoftware.com/nailgun/";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/nemiver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/nemiver/default.nix
new file mode 100644
index 000000000000..8890ceca9d39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/nemiver/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, pkgconfig
+, gnome3
+, gtk3
+, libxml2
+, intltool
+, itstool
+, gdb
+, boost
+, sqlite
+, libgtop
+, glibmm
+, gtkmm3
+, vte
+, gtksourceview
+, gsettings-desktop-schemas
+, gtksourceviewmm
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nemiver";
+ version = "0.9.6";
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/nemiver/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "85ab8cf6c4f83262f441cb0952a6147d075c3c53d0687389a3555e946b694ef2";
+ };
+
+ nativeBuildInputs = [
+ libxml2
+ intltool
+ itstool
+ pkgconfig
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ gdb
+ boost
+ sqlite
+ libgtop
+ glibmm
+ gtkmm3
+ vte
+ gtksourceview
+ gtksourceviewmm
+ gsettings-desktop-schemas
+ ];
+
+ patches = [
+ # build fixes
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/nemiver/commit/e0e42221ceb77d88be64fac1c09792dc5c9e2f43.patch";
+ sha256 = "1g0ixll6yqfj6ysf50p0c7nmh3lgmb6ds15703q7ibnw7dyidvj8";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/nemiver/commit/7005393a8c4d914eac9705e7f47818d0f4de3578.patch";
+ sha256 = "1mxb1sdqdj7dm204gja8cdygx8579bjriqqbb7cna9rj0m9c8pjg";
+ })
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/nemiver/commit/262cf9657f9c2727a816972b348692adcc666008.patch";
+ sha256 = "03jv6z54b8nzvplplapk4aj206zl1gvnv6iz0mad19g6yvfbw7a7";
+ })
+ ];
+
+ configureFlags = [
+ "--enable-gsettings"
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = "nemiver";
+ versionPolicy = "none";
+ };
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://wiki.gnome.org/Apps/Nemiver";
+ description = "Easy to use standalone C/C++ debugger";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.juliendehos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/neoload/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/neoload/default.nix
new file mode 100644
index 000000000000..be772f60492a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/neoload/default.nix
@@ -0,0 +1,95 @@
+{ stdenv, fetchurl, writeTextFile, jre, makeWrapper, fontsConf, licenseAccepted ? false }:
+
+# If you happen to use this software on the XMonad window manager, you will have issues with
+# grey windows, no resizing, menus not showing and other glitches.
+# This can be fixed by setting a different WM name:
+# http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions#Using_SetWMName
+
+if !licenseAccepted then throw ''
+ You have to accept the neoload EULA at
+ https://www.neotys.com/documents/legal/eula/neoload/eula_en.html
+ by setting nixpkgs config option 'neoload.accept_license = true';
+ ''
+else assert licenseAccepted;
+
+# the installer is very picky and demands 1.7.0.07
+let dotInstall4j = path: writeTextFile { name = "dot-install4j"; text = ''
+ JRE_VERSION ${path} 1 7 0 7
+ JRE_INFO ${path} 94
+ ''; };
+
+ responseVarfile = writeTextFile { name = "response.varfile"; text = ''
+ sys.programGroupDisabled$Boolean=false
+ sys.component.Monitor\ Agent$Boolean=true
+ sys.component.Common$Boolean=true
+ sys.component.Controller$Boolean=true
+ sys.languageId=en
+ sys.component.Load\ Generator$Boolean=true
+ sys.installationTypeId=Controller
+ sys.installationDir=INSTALLDIR/lib/neoload
+ sys.symlinkDir=INSTALLDIR/bin
+ ''; };
+
+in stdenv.mkDerivation {
+ name = "neoload-4.1.4";
+
+ src = fetchurl (
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ { url = "http://neoload.installers.neotys.com/documents/download/neoload/v4.1/neoload_4_1_4_linux_x64.sh";
+ sha256 = "199jcf5a0nwfm8wfld2rcjgq64g91vvz2bkmki8dxfzf1yasifcd"; }
+ else
+ { url = "http://neoload.installers.neotys.com/documents/download/neoload/v4.1/neoload_4_1_4_linux_x86.sh";
+ sha256 = "1z66jiwcxixsqqwa0f4q8m2p5kna4knq6lic8y8l74dgv25mw912"; } );
+
+ buildInputs = [ makeWrapper ];
+ phases = [ "installPhase" ];
+
+ # TODO: load generator / monitoring agent only builds
+
+ installPhase = ''
+ mkdir -p $out/lib/neoload
+
+ # the installer wants to use its internal JRE
+ # disable this. The extra spaces are needed because the installer carries
+ # a binary payload, so should not change in size
+ sed -e 's/^if \[ -f jre.tar.gz/if false /' $src > installer
+ chmod a+x installer
+
+ cp ${dotInstall4j jre} .install4j
+ chmod u+w .install4j
+
+ sed -e "s|INSTALLDIR|$out|" ${responseVarfile} > response.varfile
+
+ export HOME=`pwd`
+ export INSTALL4J_JAVA_HOME=${jre.home}
+ export FONTCONFIG_FILE=${fontsConf}
+ bash -ic './installer -q -varfile response.varfile'
+
+ sed -i 's/Xmx450m/Xmx900m/;s/Xss192k/Xss384k/' $out/lib/neoload/conf/agent.properties
+
+ for i in $out/bin/*; do
+ wrapProgram $i --run 'cp ${dotInstall4j "${jre.home}/jre"} ~/.install4j' \
+ --run 'chmod u+w ~/.install4j'
+ done
+
+ mkdir -p $out/share/applications
+ for i in $out/lib/neoload/*.desktop; do
+ name=$(basename "$i")
+ sed -e 's|/lib/neoload/bin|/bin|' "$i" > "$out/share/applications/$name"
+ done
+ rm -r $out/lib/neoload/*.desktop $out/lib/neoload/uninstall
+
+ '';
+
+ meta = {
+ description = "Load testing software for Web applications to realistically simulate user activity and analyze server behavior";
+
+ homepage = "https://www.neotys.com/product/overview-neoload.html";
+
+ # https://www.neotys.com/documents/legal/eula/neoload/eula_en.html
+ license = stdenv.lib.licenses.unfree;
+
+ maintainers = [ stdenv.lib.maintainers.bluescreen303 ];
+ platforms = [ "i686-linux" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
new file mode 100644
index 000000000000..ffd2a78f5094
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
+, xorg, alsaLib, dbus, glib, gtk2, atk, pango, freetype, fontconfig
+, gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
+, libnotify}:
+let
+ bits = if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+ else "ia32";
+
+ nwEnv = buildEnv {
+ name = "nwjs-env";
+ paths = [
+ xorg.libX11 xorg.libXrender glib gtk2 atk pango cairo gdk-pixbuf
+ freetype fontconfig xorg.libXcomposite alsaLib xorg.libXdamage
+ xorg.libXext xorg.libXfixes nss nspr gconf expat dbus
+ xorg.libXtst xorg.libXi xorg.libXcursor xorg.libXrandr libcap
+ libnotify
+ ];
+
+ extraOutputsToInstall = [ "lib" "out" ];
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "nwjs";
+ version = "0.12.3";
+
+ src = fetchurl {
+ url = "https://dl.nwjs.io/v${version}/nwjs-v${version}-linux-${bits}.tar.gz";
+ sha256 = if bits == "x64" then
+ "1i5ipn5x188cx54pbbmjj1bz89vvcfx5z1c7pqy2xzglkyb2xsyg" else
+ "117gx6yjbcya64yg2vybcfyp591sid209pg8a33k9afbsmgz684c";
+ };
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/share/nwjs
+ cp -R * $out/share/nwjs
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc
+
+ ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
+
+ patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}:$out/share/nwjs" $out/share/nwjs/nw
+ patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc
+
+ mkdir -p $out/bin
+ ln -s $out/share/nwjs/nw $out/bin
+ ln -s $out/share/nwjs/nwjc $out/bin
+ '';
+
+ buildInputs = [ makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "An app runtime based on Chromium and node.js";
+ homepage = "https://nwjs.io/";
+ platforms = ["i686-linux" "x86_64-linux"];
+ maintainers = [ maintainers.offline ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/nrpl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/nrpl/default.nix
new file mode 100644
index 000000000000..a1c9bfd53e33
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/nrpl/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, makeWrapper, nim, pcre, tinycc }:
+
+stdenv.mkDerivation {
+ pname = "nrpl";
+ version = "20150522";
+
+ src = fetchFromGitHub {
+ owner = "wheineman";
+ repo = "nrpl";
+ rev = "6d6c189ab7d1c905cc29dc678d66e9e132026f69";
+ sha256 = "1cly9lhrawnc42r31b7r0p0i6hcx8r00aa17gv7w9pcpj8ngb4v2";
+ };
+
+ buildInputs = [ makeWrapper nim pcre ];
+
+ patches = [
+ (fetchpatch {
+ url = "https://patch-diff.githubusercontent.com/raw/wheineman/nrpl/pull/12.patch";
+ name = "update_for_new_nim.patch";
+ sha256 = "1zff7inhn3l1jnxcnidy705lzi3wqib1chf4rayh1g9i23an7wg1";
+ })
+ ];
+
+ NIX_LDFLAGS = "-lpcre";
+
+ buildPhase = ''
+ HOME=$TMPDIR
+ nim c -d:release nrpl.nim
+ '';
+
+ installPhase = "install -Dt $out/bin nrpl";
+
+ postFixup = ''
+ wrapProgram $out/bin/nrpl \
+ --prefix PATH : ${lib.makeBinPath [ nim tinycc ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "REPL for the Nim programming language";
+ homepage = "https://github.com/wheineman/nrpl";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/nsis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/nsis/default.nix
new file mode 100644
index 000000000000..33be56c539dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/nsis/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, fetchurl
+, fetchzip
+, sconsPackages
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+ pname = "nsis";
+ version = "3.06.1";
+
+ src =
+ fetchurl {
+ url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}-src.tar.bz2";
+ sha256 = "1w1z2m982l6j8lw8hy91c3979wbnqglcf4148f9v79vl32znhpcv";
+ };
+ srcWinDistributable =
+ fetchzip {
+ url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}.zip";
+ sha256 = "04qm9jqbcybpwcrjlksggffdyafzwxxcaz9xhjw8w5rb95x7lw5q";
+ };
+
+ postUnpack = ''
+ mkdir -p $out/share/nsis
+ cp -avr ${srcWinDistributable}/{Contrib,Include,Plugins,Stubs} \
+ $out/share/nsis
+ chmod -R u+w $out/share/nsis
+ '';
+
+ nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
+ buildInputs = [ zlib ];
+
+ sconsFlags = [
+ "SKIPSTUBS=all"
+ "SKIPPLUGINS=all"
+ "SKIPUTILS=all"
+ "SKIPMISC=all"
+ "APPEND_CPPPATH=${zlib.dev}/include"
+ "APPEND_LIBPATH=${zlib}/lib"
+ "NSIS_CONFIG_CONST_DATA=no"
+ ];
+
+ preBuild = ''
+ sconsFlagsArray+=("PATH=$PATH")
+ '';
+
+ prefixKey = "PREFIX=";
+ installTargets = [ "install-compiler" ];
+
+ meta = with stdenv.lib; {
+ description = "NSIS is a free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge";
+ homepage = "https://nsis.sourceforge.io/";
+ license = licenses.zlib;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ pombeirp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/nwjs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/nwjs/default.nix
new file mode 100644
index 000000000000..4eedc003272c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/nwjs/default.nix
@@ -0,0 +1,95 @@
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
+
+, xorg, alsaLib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
+, gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
+, libnotify
+, ffmpeg_3, libxcb, cups
+, sqlite, udev
+, libuuid
+, sdk ? false
+}:
+let
+ bits = if stdenv.hostPlatform.system == "x86_64-linux" then "x64"
+ else "ia32";
+
+ nwEnv = buildEnv {
+ name = "nwjs-env";
+ paths = [
+ xorg.libX11 xorg.libXrender glib /*gtk2*/ gtk3 atk pango cairo gdk-pixbuf
+ freetype fontconfig xorg.libXcomposite alsaLib xorg.libXdamage
+ xorg.libXext xorg.libXfixes nss nspr gconf expat dbus
+ xorg.libXtst xorg.libXi xorg.libXcursor xorg.libXrandr
+ xorg.libXScrnSaver cups
+ libcap libnotify
+ # libnw-specific (not chromium dependencies)
+ ffmpeg_3 libxcb
+ # chromium runtime deps (dlopen’d)
+ sqlite udev
+ libuuid
+ ];
+
+ extraOutputsToInstall = [ "lib" "out" ];
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "nwjs";
+ version = "0.33.4";
+
+ src = if sdk then fetchurl {
+ url = "https://dl.nwjs.io/v${version}/nwjs-sdk-v${version}-linux-${bits}.tar.gz";
+ sha256 = if bits == "x64" then
+ "1hi6xispxvyb6krm5j11mv8509dwpw5ikpbkvq135gsk3gm29c9y" else
+ "00p4clbfinrj5gp2i84a263l3h00z8g7mnx61qwmr0z02kvswz9s";
+ } else fetchurl {
+ url = "https://dl.nwjs.io/v${version}/nwjs-v${version}-linux-${bits}.tar.gz";
+ sha256 = if bits == "x64" then
+ "09zd6gja3l20xx03h2gawpmh9f8nxqjp8qdkds5nz9kbbckhkj52" else
+ "0nlpdz76k1p1pq4xygfr2an91m0d7p5fjyg2xhiggyy8b7sp4964";
+ };
+
+ phases = [ "unpackPhase" "installPhase" ];
+
+ # we have runtime deps like sqlite3 that should remain
+ dontPatchELF = true;
+
+ installPhase =
+ let ccPath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc ];
+ in ''
+ mkdir -p $out/share/nwjs
+ cp -R * $out/share/nwjs
+ find $out/share/nwjs
+
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
+
+ ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
+
+ libpath="$out/share/nwjs/lib/"
+ for f in "$libpath"/*.so; do
+ patchelf --set-rpath "${nwEnv}/lib:${ccPath}:$libpath" "$f"
+ done
+ patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:${ccPath}:$libpath" $out/share/nwjs/nw
+ # check, whether all RPATHs are correct (all dependencies found)
+ checkfile=$(mktemp)
+ for f in "$libpath"/*.so "$out/share/nwjs/nw"; do
+ (echo "$f:";
+ ldd "$f" ) > "$checkfile"
+ done
+ if <"$checkfile" grep -e "not found"; then
+ cat "$checkfile"
+ exit 1
+ fi
+
+ mkdir -p $out/bin
+ ln -s $out/share/nwjs/nw $out/bin
+ '';
+
+ buildInputs = [ makeWrapper ];
+
+ meta = with stdenv.lib; {
+ description = "An app runtime based on Chromium and node.js";
+ homepage = "https://nwjs.io/";
+ platforms = ["i686-linux" "x86_64-linux"];
+ maintainers = [ maintainers.offline ];
+ license = licenses.bsd3;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix
new file mode 100644
index 000000000000..309c44d6d463
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlidl/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, ocaml, writeText }:
+
+let
+ pname = "camlidl";
+ webpage = "http://caml.inria.fr/pub/old_caml_site/camlidl/";
+in
+stdenv.mkDerivation rec {
+ name = "${pname}-${version}";
+ version = "1.05";
+
+ src = fetchurl {
+ url = "http://caml.inria.fr/pub/old_caml_site/distrib/bazar-ocaml/${pname}-${version}.tar.gz";
+ sha256 = "0483cs66zsxsavcllpw1qqvyhxb39ddil3h72clcd69g7fyxazl5";
+ };
+
+ buildInputs = [ ocaml ];
+
+ preBuild = ''
+ mv config/Makefile.unix config/Makefile
+ substituteInPlace config/Makefile --replace BINDIR=/usr/local/bin BINDIR=$out
+ substituteInPlace config/Makefile --replace OCAMLLIB=/usr/local/lib/ocaml OCAMLLIB=$out/lib/ocaml/${ocaml.version}/site-lib/camlidl
+ substituteInPlace config/Makefile --replace CPP=/lib/cpp CPP=${stdenv.cc}/bin/cpp
+ substituteInPlace config/Makefile --replace "OCAMLC=ocamlc -g" "OCAMLC=ocamlc -g -warn-error -31"
+ mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/camlidl/caml
+ '';
+
+ postInstall = ''
+ cat >$out/lib/ocaml/${ocaml.version}/site-lib/camlidl/META <<EOF
+ # Courtesy of GODI
+ description = "Stub generator"
+ version = "${version}"
+ archive(byte) = "com.cma"
+ archive(native) = "com.cmxa"
+ EOF
+ mkdir -p $out/bin
+ ln -s $out/camlidl $out/bin
+ '';
+
+ setupHook = writeText "setupHook.sh" ''
+ export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/${name}/"
+ export NIX_CFLAGS_COMPILE+=" -isystem $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
+ export NIX_LDFLAGS+=" -L $1/lib/ocaml/${ocaml.version}/site-lib/camlidl"
+ '';
+
+ meta = {
+ description = "A stub code generator and COM binding for Objective Caml";
+ homepage = webpage;
+ license = "LGPL";
+ maintainers = [ stdenv.lib.maintainers.roconnor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix
new file mode 100644
index 000000000000..73228655cca0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchzip, which, ocaml, ocamlbuild }:
+
+if stdenv.lib.versionAtLeast ocaml.version "4.09"
+then throw "camlp4 is not available for OCaml ${ocaml.version}"
+else
+
+let param = {
+ "4.02" = {
+ version = "4.02+6";
+ sha256 = "06yl4q0qazl7g25b0axd1gdkfd4qpqzs1gr5fkvmkrcbz113h1hj"; };
+ "4.03" = {
+ version = "4.03+1";
+ sha256 = "1f2ndch6f1m4fgnxsjb94qbpwjnjgdlya6pard44y6n0dqxi1wsq"; };
+ "4.04" = {
+ version = "4.04+1";
+ sha256 = "1ad7rygqjxrc1im95gw9lp8q83nhdaf383f2808f1p63yl42xm7k"; };
+ "4.05" = {
+ version = "4.05+1";
+ sha256 = "0wm795hpwvwpib9c9z6p8kw2fh7p7b2hml6g15z8zry3y7w738sv"; };
+ "4.06" = {
+ version = "4.06+1";
+ sha256 = "0fazfw2l7wdmbwnqc22xby5n4ri1wz27lw9pfzhsbcdrighykysf"; };
+ "4.07" = {
+ version = "4.07+1";
+ sha256 = "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl"; };
+ "4.08" = {
+ version = "4.08+1";
+ sha256 = "0qplawvxwai25bi27niw2cgz2al01kcnkj8wxwhxslpi21z6pyx1"; };
+ }.${ocaml.meta.branch};
+in
+
+stdenv.mkDerivation rec {
+ pname = "camlp4";
+ inherit (param) version;
+
+ src = fetchzip {
+ url = "https://github.com/ocaml/camlp4/archive/${version}.tar.gz";
+ inherit (param) sha256;
+ };
+
+ buildInputs = [ which ocaml ocamlbuild ];
+
+ dontAddPrefix = true;
+
+ preConfigure = ''
+ # increase stack space for spacetime variant of the compiler
+ # https://github.com/ocaml/ocaml/issues/7435
+ # but disallowed by darwin sandbox
+ ulimit -s unlimited || true
+
+ configureFlagsArray=(
+ --bindir=$out/bin
+ --libdir=$out/lib/ocaml/${ocaml.version}/site-lib
+ --pkgdir=$out/lib/ocaml/${ocaml.version}/site-lib
+ )
+ '';
+
+ postConfigure = ''
+ substituteInPlace camlp4/META.in \
+ --replace +camlp4 $out/lib/ocaml/${ocaml.version}/site-lib/camlp4
+ '';
+
+ makeFlags = [ "all" ];
+
+ installTargets = [ "install" "install-META" ];
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "A software system for writing extensible parsers for programming languages";
+ homepage = "https://github.com/ocaml/camlp4";
+ platforms = ocaml.meta.platforms or [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix
new file mode 100644
index 000000000000..7e7c185fbc7a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchzip, ocaml }:
+
+stdenv.mkDerivation {
+
+ name = "camlp5-7.12";
+
+ src = fetchzip {
+ url = "https://github.com/camlp5/camlp5/archive/rel712.tar.gz";
+ sha256 = "12ix5g15bys932hyf9gs637iz76m0ji9075d83jfdmx85q30llgf";
+ };
+
+ buildInputs = [ ocaml ];
+
+ prefixKey = "-prefix ";
+
+ preConfigure = "configureFlagsArray=(--strict" +
+ " --libdir $out/lib/ocaml/${ocaml.version}/site-lib)";
+
+ buildFlags = [ "world.opt" ];
+
+ dontStrip = true;
+
+ meta = with stdenv.lib; {
+ description = "Preprocessor-pretty-printer for OCaml";
+ longDescription = ''
+ Camlp5 is a preprocessor and pretty-printer for OCaml programs.
+ It also provides parsing and printing tools.
+ '';
+ homepage = "https://camlp5.github.io/";
+ license = licenses.bsd3;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = with maintainers; [
+ maggesi vbgl
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix
new file mode 100644
index 000000000000..63c169f045f9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/cppo/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, dune }:
+let
+ pname = "cppo";
+ webpage = "https://github.com/ocaml-community/${pname}";
+in
+assert stdenv.lib.versionAtLeast ocaml.version "3.12";
+
+let param =
+ if stdenv.lib.versionAtLeast ocaml.version "4.02" then
+ (if stdenv.lib.versionAtLeast ocaml.version "4.03" then {
+ version = "1.6.6";
+ sha256 = "1smcc0l6fh2n0y6bp96c69j5nw755jja99w0b206wx3yb2m4w2hs";
+ } else {
+ version = "1.6.5";
+ sha256 = "03c0amszy28shinvz61hm340jz446zz5763a1pdqlza36kwcj0p0";
+ }) // {
+ buildInputs = [ dune ];
+ extra = {
+ inherit (dune) installPhase;
+ };
+ } else {
+ version = "1.5.0";
+ sha256 = "1xqldjz9risndnabvadw41fdbi5sa2hl4fnqls7j9xfbby1izbg8";
+ extra = {
+ createFindlibDestdir = true;
+ makeFlags = [ "PREFIX=$(out)" ];
+ preBuild = ''
+ mkdir $out/bin
+ '';
+ };
+ }
+; in
+
+stdenv.mkDerivation ({
+
+ name = "${pname}-${param.version}";
+
+ src = fetchFromGitHub {
+ owner = "mjambon";
+ repo = pname;
+ rev = "v${param.version}";
+ inherit (param) sha256;
+ };
+
+ buildInputs = [ ocaml findlib ocamlbuild ] ++ (param.buildInputs or []);
+
+ meta = with stdenv.lib; {
+ description = "The C preprocessor for OCaml";
+ longDescription = ''
+ Cppo is an equivalent of the C preprocessor targeted at the OCaml language and its variants.
+ '';
+ homepage = webpage;
+ maintainers = [ maintainers.vbgl ];
+ license = licenses.bsd3;
+ };
+} // param.extra)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
new file mode 100644
index 000000000000..e48707dcb9af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/crunch/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildDunePackage, fetchurl, ocaml, cmdliner, opaline, ptime }:
+
+buildDunePackage rec {
+
+ pname = "crunch";
+ version = "3.1.0";
+
+ src = fetchurl {
+ url = "https://github.com/mirage/ocaml-crunch/releases/download/v${version}/crunch-v${version}.tbz";
+ sha256 = "0d26715a4h9r1wibnc12xy690m1kan7hrcgbb5qk8x78zsr67lnf";
+ };
+
+ propagatedBuildInputs = [ cmdliner ptime ];
+
+ outputs = [ "lib" "bin" "out" ];
+
+ installPhase = ''
+ ${opaline}/bin/opaline -prefix $bin -libdir $lib/lib/ocaml/${ocaml.version}/site-lib/
+ '';
+
+ meta = {
+ homepage = "https://github.com/mirage/ocaml-crunch";
+ description = "Convert a filesystem into a static OCaml module";
+ license = lib.licenses.isc;
+ maintainers = [ lib.maintainers.vbgl ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
new file mode 100644
index 000000000000..c267b2757a43
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -0,0 +1,54 @@
+{ lib, buildDunePackage, fetchurl, makeWrapper
+, curly, fmt, bos, cmdliner, re, rresult, logs
+, odoc, opam-format, opam-core, opam-state, yojson
+, opam, git, findlib, mercurial, bzip2, gnutar, coreutils
+, alcotest, mdx
+}:
+
+# don't include dune as runtime dep, so user can
+# choose between dune and dune_2
+let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ];
+in buildDunePackage rec {
+ pname = "dune-release";
+ version = "1.4.0";
+
+ minimumOCamlVersion = "4.06";
+
+ src = fetchurl {
+ url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz";
+ sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
+ rresult logs odoc bos yojson ];
+ checkInputs = [ alcotest mdx ] ++ runtimeInputs;
+ doCheck = true;
+
+ useDune2 = true;
+
+ postPatch = ''
+ # remove check for curl in PATH, since curly is patched
+ # to have a fixed path to the binary in nix store
+ sed -i '/must_exist (Cmd\.v "curl"/d' lib/github.ml
+
+ # set bogus user info in git so git commit doesn't fail
+ sed -i '/git init/ a \ $ git config user.name test; git config user.email "pseudo@pseudo.invalid"' \
+ tests/bin/{delegate_info,errors,tag,no_doc,x-commit-hash}/run.t
+ # ignore weird yes error message
+ sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t
+ '';
+
+ # tool specific env vars have been deprecated, use PATH
+ preFixup = ''
+ wrapProgram $out/bin/dune-release \
+ --prefix PATH : "${lib.makeBinPath runtimeInputs}"
+ '';
+
+ meta = with lib; {
+ description = "Release dune packages in opam";
+ homepage = "https://github.com/ocamllabs/dune-release";
+ license = licenses.isc;
+ maintainers = with maintainers; [ sternenseemann ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
new file mode 100644
index 000000000000..177fa96f5b96
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, ocaml, findlib, fetchpatch }:
+
+if stdenv.lib.versionOlder ocaml.version "4.08"
+then throw "dune is not available for OCaml ${ocaml.version}"
+else
+
+stdenv.mkDerivation rec {
+ pname = "dune";
+ version = "2.7.1";
+
+ src = fetchurl {
+ url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
+ sha256 = "0pcjf209gynjwipnpplaqyvyivnawqiwhvqnivhkybisicpqyln3";
+ };
+
+ buildInputs = [ ocaml findlib ];
+
+ buildFlags = "release";
+
+ patches = [
+ # Fix setup.ml configure path. Remove with the next release.
+ (fetchpatch {
+ url = "https://github.com/ocaml/dune/commit/8a3d7f2f2015b71384caa07226d1a89dba9d6c25.patch";
+ sha256 = "0dw4q10030h9xcdlxw2vp7qm0hd2qpkb98rir5d55m9vn65w8j28";
+ })
+ ];
+
+ dontAddPrefix = true;
+
+ installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
+
+ meta = {
+ homepage = "https://dune.build/";
+ description = "A composable build system";
+ changelog = "https://github.com/ocaml/dune/releases/tag/${version}";
+ maintainers = [ stdenv.lib.maintainers.vbgl stdenv.lib.maintainers.marsam ];
+ license = stdenv.lib.licenses.mit;
+ inherit (ocaml.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix
new file mode 100644
index 000000000000..ef0f5c4fabd4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/dune/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, ocaml, findlib, opaline }:
+
+if !stdenv.lib.versionAtLeast ocaml.version "4.02"
+then throw "dune is not available for OCaml ${ocaml.version}"
+else
+
+stdenv.mkDerivation rec {
+ pname = "dune";
+ version = "1.11.4";
+ src = fetchurl {
+ url = "https://github.com/ocaml/dune/releases/download/${version}/dune-build-info-${version}.tbz";
+ sha256 = "1rkc8lqw30ifjaz8d81la6i8j05ffd0whpxqsbg6dci16945zjvp";
+ };
+
+ buildInputs = [ ocaml findlib ];
+
+ buildFlags = [ "release" ];
+
+ dontAddPrefix = true;
+
+ installPhase = ''
+ runHook preInstall
+ ${opaline}/bin/opaline -prefix $out -libdir $OCAMLFIND_DESTDIR
+ runHook postInstall
+ '';
+
+ meta = {
+ homepage = "https://dune.build/";
+ description = "A composable build system";
+ maintainers = [ stdenv.lib.maintainers.vbgl stdenv.lib.maintainers.marsam ];
+ license = stdenv.lib.licenses.mit;
+ inherit (ocaml.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/default.nix
new file mode 100644
index 000000000000..1354e158a8e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/default.nix
@@ -0,0 +1,61 @@
+{ stdenv, fetchurl, fetchpatch, m4, ncurses, ocaml, writeText }:
+
+stdenv.mkDerivation rec {
+ pname = "ocaml-findlib";
+ version = "1.8.1";
+
+ src = fetchurl {
+ url = "http://download.camlcity.org/download/findlib-${version}.tar.gz";
+ sha256 = "00s3sfb02pnjmkax25pcnljcnhcggiliccfz69a72ic7gsjwz1cf";
+ };
+
+ buildInputs = [m4 ncurses ocaml];
+
+ patches = [ ./ldconf.patch ./install_topfind.patch ];
+
+ dontAddPrefix=true;
+
+ preConfigure=''
+ configureFlagsArray=(
+ -bindir $out/bin
+ -mandir $out/share/man
+ -sitelib $out/lib/ocaml/${ocaml.version}/site-lib
+ -config $out/etc/findlib.conf
+ )
+ '';
+
+ buildPhase = ''
+ make all
+ make opt
+ '';
+
+ setupHook = writeText "setupHook.sh" ''
+ addOCamlPath () {
+ if test -d "''$1/lib/ocaml/${ocaml.version}/site-lib"; then
+ export OCAMLPATH="''${OCAMLPATH-}''${OCAMLPATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/"
+ fi
+ if test -d "''$1/lib/ocaml/${ocaml.version}/site-lib/stublibs"; then
+ export CAML_LD_LIBRARY_PATH="''${CAML_LD_LIBRARY_PATH-}''${CAML_LD_LIBRARY_PATH:+:}''$1/lib/ocaml/${ocaml.version}/site-lib/stublibs"
+ fi
+ export OCAMLFIND_DESTDIR="''$out/lib/ocaml/${ocaml.version}/site-lib/"
+ if test -n "''${createFindlibDestdir-}"; then
+ mkdir -p $OCAMLFIND_DESTDIR
+ fi
+ }
+
+ addEnvHooks "$targetOffset" addOCamlPath
+ '';
+
+ meta = {
+ homepage = "http://projects.camlcity.org/projects/findlib.html";
+ description = "O'Caml library manager";
+ license = stdenv.lib.licenses.mit;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = [
+ stdenv.lib.maintainers.maggesi
+ stdenv.lib.maintainers.vbmithr
+ ];
+ };
+}
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/install_topfind.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/install_topfind.patch
new file mode 100644
index 000000000000..dbdb0edd6cb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/install_topfind.patch
@@ -0,0 +1,12 @@
+--- a/src/findlib/Makefile
++++ b/src/findlib/Makefile
+@@ -123,7 +123,7 @@ clean:
+ install: all
+ mkdir -p "$(prefix)$(OCAML_SITELIB)/$(NAME)"
+ mkdir -p "$(prefix)$(OCAMLFIND_BIN)"
+- test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_CORE_STDLIB)"
++ test $(INSTALL_TOPFIND) -eq 0 || cp topfind "$(prefix)$(OCAML_SITELIB)"
+ files=`$(SH) $(TOP)/tools/collect_files $(TOP)/Makefile.config findlib.cmi findlib.mli findlib.cma findlib.cmxa findlib$(LIB_SUFFIX) findlib.cmxs topfind.cmi topfind.mli fl_package_base.mli fl_package_base.cmi fl_metascanner.mli fl_metascanner.cmi fl_metatoken.cmi findlib_top.cma findlib_top.cmxa findlib_top$(LIB_SUFFIX) findlib_top.cmxs findlib_dynload.cma findlib_dynload.cmxa findlib_dynload$(LIB_SUFFIX) findlib_dynload.cmxs fl_dynload.mli fl_dynload.cmi META` && \
+ cp $$files "$(prefix)$(OCAML_SITELIB)/$(NAME)"
+ f="ocamlfind$(EXEC_SUFFIX)"; { test -f ocamlfind_opt$(EXEC_SUFFIX) && f="ocamlfind_opt$(EXEC_SUFFIX)"; }; \
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/ldconf.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/ldconf.patch
new file mode 100644
index 000000000000..7718cb673925
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/findlib/ldconf.patch
@@ -0,0 +1,8 @@
+Setting paths to search for dnynmic libraries isn't very useful in Nix.
+
+--- findlib-1.2.6/findlib.conf.in 2010-08-17 14:50:28.000000000 -0400
++++ findlib-1.2.6/findlib.conf.in 2010-11-24 09:46:55.179648354 -0500
+@@ -1,2 +1,3 @@
+ destdir="@SITELIB@"
+ path="@SITELIB@"
++ldconf="ignore"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
new file mode 100644
index 000000000000..e6fc96038ff8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/Makefile.conf.diff
@@ -0,0 +1,10 @@
+--- old/Makefile.conf 2014-05-19 16:53:09.263564921 +0200
++++ new/Makefile.conf 2014-05-19 16:53:42.213152994 +0200
+@@ -1,6 +1,6 @@
+
+ # Where binaries are installed:
+-BINDIR := `dirname \`which ocamlc\``
++BINDIR := $(out)/bin
+
+ ####
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix
new file mode 100644
index 000000000000..e9e7f9d279ea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/camlp4.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib, dune, js_of_ocaml-compiler
+, camlp4, ocsigen_deriving
+}:
+
+stdenv.mkDerivation rec {
+ version = "3.2.1";
+ pname = "js_of_ocaml-camlp4";
+
+ src = fetchFromGitHub {
+ owner = "ocsigen";
+ repo = "js_of_ocaml";
+ rev = version;
+ sha256 = "1v2hfq0ra9j07yz6pj6m03hrvgys4vmx0gclchv94yywpb2wc7ik";
+ };
+
+ inherit (js_of_ocaml-compiler) installPhase meta;
+
+ buildInputs = [ ocaml findlib dune camlp4 ocsigen_deriving ];
+
+ buildPhase = "dune build -p js_of_ocaml-camlp4";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
new file mode 100644
index 000000000000..c0812c39a3e6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -0,0 +1,28 @@
+{ lib, fetchurl, buildDunePackage
+, ocaml, findlib, cmdliner, dune_2, cppo, yojson, ocaml-migrate-parsetree
+, menhir
+}:
+
+buildDunePackage rec {
+ pname = "js_of_ocaml-compiler";
+ version = "3.7.0";
+ useDune2 = true;
+
+ src = fetchurl {
+ url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
+ sha256 = "0rw6cfkl3zlyav8q2w7grxxqjmg35mz5rgvmkiqb58nl4gmgzx6w";
+ };
+
+ nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
+ buildInputs = [ cmdliner ];
+
+ configurePlatforms = [];
+ propagatedBuildInputs = [ yojson ocaml-migrate-parsetree ];
+
+ meta = {
+ description = "Compiler from OCaml bytecode to Javascript";
+ license = lib.licenses.gpl2;
+ maintainers = [ lib.maintainers.vbgl ];
+ homepage = "https://ocsigen.org/js_of_ocaml/";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
new file mode 100644
index 000000000000..9a57b590d6cf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, ocaml-migrate-parsetree, ppx_tools_versioned, uchar
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
+ nativeBuildInputs = [ ocaml findlib dune_2 ];
+
+ propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
+
+ buildPhase = "dune build -p js_of_ocaml";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
new file mode 100644
index 000000000000..2ad8578894f5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
@@ -0,0 +1,16 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler, js_of_ocaml-ppx
+, ocaml-migrate-parsetree, ppx_tools_versioned
+, js_of_ocaml, ocaml_lwt, lwt_log
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml-lwt";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+
+ propagatedBuildInputs = [ js_of_ocaml ocaml_lwt lwt_log ];
+
+ buildPhase = "dune build -p js_of_ocaml-lwt";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
new file mode 100644
index 000000000000..50bcd69eb66a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
@@ -0,0 +1,15 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, ocamlbuild
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml-ocamlbuild";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ ocaml findlib dune_2 ];
+
+ propagatedBuildInputs = [ ocamlbuild ];
+
+ buildPhase = "dune build -p js_of_ocaml-ocamlbuild";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
new file mode 100644
index 000000000000..69783c7eada1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -0,0 +1,14 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, ocaml-migrate-parsetree, ppx_tools_versioned
+, js_of_ocaml
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml-ppx";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ ocaml findlib dune_2 ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
+
+ buildPhase = "dune build -p js_of_ocaml-ppx";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
new file mode 100644
index 000000000000..d3cc4e08787f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
@@ -0,0 +1,15 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, js_of_ocaml, ppxlib
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml-ppx_deriving_json";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ ocaml findlib dune_2 ];
+
+ propagatedBuildInputs = [ js_of_ocaml ppxlib ];
+
+ buildPhase = "dune build -p js_of_ocaml-ppx_deriving_json";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
new file mode 100644
index 000000000000..fcfeeaf8d99a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
@@ -0,0 +1,16 @@
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
+, js_of_ocaml-ppx, ocaml-migrate-parsetree, ppx_tools_versioned
+, js_of_ocaml, reactivedata, tyxml
+}:
+
+stdenv.mkDerivation {
+ pname = "js_of_ocaml-tyxml";
+
+ inherit (js_of_ocaml-compiler) version src installPhase meta;
+
+ buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+
+ propagatedBuildInputs = [ js_of_ocaml reactivedata tyxml ];
+
+ buildPhase = "dune build -p js_of_ocaml-tyxml";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
new file mode 100644
index 000000000000..34fcc9bb6c32
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchurl, buildDunePackage, substituteAll
+, dot-merlin-reader, dune_2, yojson, csexp, result }:
+
+buildDunePackage rec {
+ pname = "merlin";
+
+ inherit (dot-merlin-reader) src version;
+
+ minimumOCamlVersion = "4.02.3";
+
+ patches = [
+ (substituteAll {
+ src = ./fix-paths.patch;
+ dot_merlin_reader = "${dot-merlin-reader}/bin/dot-merlin-reader";
+ dune = "${dune_2}/bin/dune";
+ })
+ ];
+
+ buildInputs = [ dot-merlin-reader yojson csexp result ];
+
+ meta = with lib; {
+ description = "An editor-independent tool to ease the development of programs in OCaml";
+ homepage = "https://github.com/ocaml/merlin";
+ license = licenses.mit;
+ maintainers = [ maintainers.vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
new file mode 100644
index 000000000000..7af1b4513a85
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl, ocamlPackages }:
+
+with ocamlPackages;
+
+buildDunePackage rec {
+ pname = "dot-merlin-reader";
+ version = "3.4.0";
+
+ minimumOCamlVersion = "4.02.1";
+
+ src = fetchurl {
+ url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
+ sha256 = "048rkpbvayksv8mgmkgi17vv0y9xplv7v2ww4d1hs7bkm5zzsvg2";
+ };
+
+ buildInputs = [ yojson csexp result ];
+
+ meta = with lib; {
+ description = "Reads config files for merlin";
+ homepage = "https://github.com/ocaml/merlin";
+ license = licenses.mit;
+ maintainers = [ maintainers.hongchangwu ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/fix-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/fix-paths.patch
new file mode 100644
index 000000000000..05fafacc09c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/merlin/fix-paths.patch
@@ -0,0 +1,15 @@
+--- a/src/kernel/mconfig_dot.ml
++++ b/src/kernel/mconfig_dot.ml
+@@ -126,10 +126,10 @@ module Configurator = struct
+ let prog, args =
+ match cfg with
+ | Dot_merlin ->
+- let prog = "dot-merlin-reader" in
++ let prog = "@dot_merlin_reader@" in
+ prog, [| prog |]
+ | Dune ->
+- let prog = "dune" in
++ let prog = "@dune@" in
+ prog, [| prog; "ocaml-merlin"; "--no-print-directory" |]
+ in
+ log ~title:"get_config" "Using %s configuration provider." (to_string cfg);
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/oasis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/oasis/default.nix
new file mode 100644
index 000000000000..a0932d919c08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/oasis/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, ocamlmod, ocamlify }:
+
+stdenv.mkDerivation {
+ version = "0.4.10";
+ pname = "ocaml-oasis";
+
+ # You must manually update the url, not just the version. OCamlforge keys off
+ # the number after download.php, not the filename.
+ src = fetchurl {
+ url = "https://forge.ocamlcore.org/frs/download.php/1694/oasis-0.4.10.tar.gz";
+ sha256 = "13ah03pbcvrjv5lmx971hvkm9rvbvimska5wmjfvgvd20ca0gn8w";
+ };
+
+ createFindlibDestdir = true;
+
+ buildInputs =
+ [
+ ocaml findlib ocamlbuild ocamlmod ocamlify
+ ];
+
+ configurePhase = "ocaml setup.ml -configure --prefix $out";
+ buildPhase = "ocaml setup.ml -build";
+ installPhase = "ocaml setup.ml -install";
+
+ meta = with stdenv.lib; {
+ homepage = "http://oasis.forge.ocamlcore.org/";
+ description = "Configure, build and install system for OCaml projects";
+ license = licenses.lgpl21;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = with maintainers; [
+ vbgl maggesi
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix
new file mode 100644
index 000000000000..e7528d4f7728
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obelisk/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ pname = "obelisk";
+ version = "0.4.0";
+ src = fetchFromGitHub {
+ owner = "lelio-brun";
+ repo = "obelisk";
+ rev = "v${version}";
+ sha256 = "0rw85knbwqj2rys1hh5qy8sfdqb4mb1wsriy38n7zcpbwim47vb8";
+ };
+
+ buildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild menhir ];
+
+ installFlags = [ "BINDIR=$(out)/bin" ];
+
+ meta = {
+ description = "A simple tool which produces pretty-printed output from a Menhir parser file (.mly)";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.vbgl ];
+ inherit (src.meta) homepage;
+ inherit (ocamlPackages.ocaml.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obuild/default.nix
new file mode 100644
index 000000000000..5e851a93205b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/obuild/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchzip, ocaml }:
+
+let version = "0.1.10"; in
+
+stdenv.mkDerivation {
+ pname = "obuild";
+ inherit version;
+
+ src = fetchzip {
+ url = "https://github.com/ocaml-obuild/obuild/archive/obuild-v${version}.tar.gz";
+ sha256 = "15arsgbhk1c39vd8qhpa3pag94m44bwvzggdvkibx6hnpkv8z9bn";
+ };
+
+ buildInputs = [ ocaml ];
+
+ buildPhase = ''
+ patchShebangs ./bootstrap
+ ./bootstrap
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp dist/build/obuild/obuild dist/build/obuild-from-oasis/obuild-from-oasis dist/build/obuild-simple/obuild-simple $out/bin/
+ '';
+
+ meta = {
+ homepage = "https://github.com/ocaml-obuild/obuild";
+ platforms = ocaml.meta.platforms or [];
+ description = "Simple package build system for OCaml";
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = with stdenv.lib.maintainers; [ volth ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix
new file mode 100644
index 000000000000..a9b4218224ee
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -0,0 +1,25 @@
+{ lib, fetchzip, ncurses, ocamlPackages }:
+
+with ocamlPackages; buildDunePackage rec {
+ pname = "ocaml-top";
+ version = "1.2.0-rc";
+
+ src = fetchzip {
+ url = "https://github.com/OCamlPro/ocaml-top/archive/${version}.tar.gz";
+ sha256 = "1r290m9vvr25lgaanivz05h0kf4fd3h5j61wj4hpp669zffcyyb5";
+ };
+
+ buildInputs = [ ncurses ocp-build lablgtk3-sourceview3 ocp-index ];
+
+ configurePhase = ''
+ export TERM=xterm
+ ocp-build -init
+ '';
+
+ meta = {
+ homepage = "https://www.typerex.org/ocaml-top.html";
+ license = lib.licenses.gpl3;
+ description = "A simple cross-platform OCaml code editor built for top-level evaluation";
+ maintainers = with lib.maintainers; [ vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlbuild/default.nix
new file mode 100644
index 000000000000..7270386972de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlbuild/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, ocaml, findlib }:
+let
+ version = "0.14.0";
+in
+stdenv.mkDerivation {
+ name = "ocamlbuild-${version}";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "ocaml";
+ repo = "ocamlbuild";
+ rev = version;
+ sha256 = "1hb5mcdz4wv7sh1pj7dq9q4fgz5h3zg7frpiya6s8zd3ypwzq0kh";
+ };
+
+ createFindlibDestdir = true;
+
+ buildInputs = [ ocaml findlib ];
+
+ configurePhase = ''
+ make -f configure.make Makefile.config \
+ "OCAMLBUILD_PREFIX=$out" \
+ "OCAMLBUILD_BINDIR=$out/bin" \
+ "OCAMLBUILD_MANDIR=$out/share/man" \
+ "OCAMLBUILD_LIBDIR=$OCAMLFIND_DESTDIR"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/ocaml/ocamlbuild/";
+ description = "A build system with builtin rules to easily build most OCaml projects";
+ license = licenses.lgpl2;
+ inherit (ocaml.meta) platforms;
+ maintainers = with maintainers; [ vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
new file mode 100644
index 000000000000..5b607d3d6c64
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -0,0 +1,116 @@
+{ lib, fetchurl, fetchzip, ocamlPackages }:
+
+with ocamlPackages;
+
+let
+ mkOCamlformat = {
+ version,
+ sha256,
+ buildInputs,
+ useDune2 ? true,
+ tarballName ? "ocamlformat-${version}.tbz",
+ # The 'src' argument can be removed when 0.11.0 is pruned
+ src ? fetchurl {
+ url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
+ inherit sha256;
+ }
+ }:
+ buildDunePackage rec {
+ pname = "ocamlformat";
+
+ minimumOCamlVersion = "4.06";
+
+ inherit src version useDune2 buildInputs;
+
+ meta = {
+ homepage = "https://github.com/ocaml-ppx/ocamlformat";
+ description = "Auto-formatter for OCaml code";
+ maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
+ license = lib.licenses.mit;
+ };
+ };
+
+ post_0_11_buildInputs = [
+ base
+ cmdliner
+ fpath
+ ocaml-migrate-parsetree
+ odoc
+ re
+ stdio
+ uuseg
+ uutf
+ ];
+
+ post_0_14_buildInputs = [
+ base
+ cmdliner
+ fpath
+ ocaml-migrate-parsetree
+ odoc
+ re
+ stdio
+ uuseg
+ uutf
+ fix
+ menhir
+ ];
+in
+
+# Older versions should be removed when their usage decrease
+# This script scraps Github looking for OCamlformat's options and versions usage:
+# https://gist.github.com/Julow/110dc94308d6078225e0665e3eccd433
+
+rec {
+ ocamlformat_0_11_0 = mkOCamlformat rec {
+ version = "0.11.0";
+ src = fetchzip {
+ url = "https://github.com/ocaml-ppx/ocamlformat/archive/0.11.0.tar.gz";
+ inherit sha256;
+ };
+ sha256 = "0zvjn71jd4d3znnpgh0yphb2w8ggs457b6bl6cg1fmpdgxnds6yx";
+ useDune2 = false;
+ buildInputs = post_0_11_buildInputs;
+ };
+
+ ocamlformat_0_12 = mkOCamlformat {
+ version = "0.12";
+ sha256 = "1zi8x597dhp2822j6j28s84yyiqppl7kykpwqqclx6ybypvlzdpj";
+ useDune2 = false;
+ buildInputs = post_0_11_buildInputs;
+ };
+
+ ocamlformat_0_13_0 = mkOCamlformat rec {
+ version = "0.13.0";
+ sha256 = "0ki2flqi3xkhw9mfridivb6laxm7gml8rj9qz42vqmy9yx76jjxq";
+ tarballName = "ocamlformat-${version}-2.tbz";
+ useDune2 = false;
+ buildInputs = post_0_11_buildInputs;
+ };
+
+ ocamlformat_0_14_0 = mkOCamlformat {
+ version = "0.14.0";
+ sha256 = "070c0x6z5y0lyls56zm34g8lyc093wkr0jfp50dvrkr9fk1sx2wi";
+ buildInputs = post_0_14_buildInputs;
+ };
+
+ ocamlformat_0_14_1 = mkOCamlformat {
+ version = "0.14.1";
+ sha256 = "03wn46xib63748157xchj7gflkw5000fcjw6n89h9g82q9slazaa";
+ buildInputs = post_0_14_buildInputs;
+ };
+
+ ocamlformat_0_14_2 = mkOCamlformat {
+ version = "0.14.2";
+ sha256 = "16phz1sg9b070p6fm8d42j0piizg05vghdjmw8aj7xm82b1pm7sz";
+ buildInputs = post_0_14_buildInputs;
+ };
+
+ ocamlformat_0_15_0 = mkOCamlformat {
+ version = "0.15.0";
+ sha256 = "0190vz59n6ma9ca1m3syl3mc8i1smj1m3d8x1jp21f710y4llfr6";
+ buildInputs = post_0_14_buildInputs;
+ };
+
+ ocamlformat = ocamlformat_0_15_0;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlify/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlify/default.nix
new file mode 100644
index 000000000000..42faa33fbe1c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlify/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, ocaml, findlib, ocamlbuild }:
+
+stdenv.mkDerivation {
+ name = "ocamlify-0.0.2";
+
+ src = fetchurl {
+ url = "http://forge.ocamlcore.org/frs/download.php/1209/ocamlify-0.0.2.tar.gz";
+ sha256 = "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii";
+ };
+
+ buildInputs = [ ocaml findlib ocamlbuild ];
+
+ configurePhase = ''
+ substituteInPlace src/ocamlify.ml --replace 'OCamlifyConfig.version' '"0.0.2"'
+ '';
+
+ buildPhase = "ocamlbuild src/ocamlify.native";
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv _build/src/ocamlify.native $out/bin/ocamlify
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ homepage = "http://forge.ocamlcore.org/projects/ocamlmod/ocamlmod";
+ description = "Generate OCaml modules from source files";
+ platforms = ocaml.meta.platforms or [];
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = with stdenv.lib.maintainers; [
+ maggesi
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix
new file mode 100644
index 000000000000..46a87dc3ffed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlmod/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, ounit }:
+
+stdenv.mkDerivation {
+ pname = "ocamlmod";
+ version = "0.0.9";
+
+ src = fetchurl {
+ url = "https://forge.ocamlcore.org/frs/download.php/1702/ocamlmod-0.0.9.tar.gz";
+ sha256 = "0cgp9qqrq7ayyhddrmqmq1affvfqcn722qiakjq4dkywvp67h4aa";
+ };
+
+ buildInputs = [ ocaml findlib ocamlbuild ounit ];
+
+ configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests";
+ buildPhase = "ocaml setup.ml -build";
+ installPhase = "ocaml setup.ml -install";
+
+ doCheck = true;
+
+ checkPhase = "ocaml setup.ml -test";
+
+ dontStrip = true;
+
+ meta = {
+ homepage = "http://forge.ocamlcore.org/projects/ocamlmod/ocamlmod";
+ description = "Generate OCaml modules from source files";
+ platforms = ocaml.meta.platforms or [];
+ maintainers = with stdenv.lib.maintainers; [
+ maggesi
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch
new file mode 100644
index 000000000000..4fc887c070d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/Makefile.patch
@@ -0,0 +1,70 @@
+--- a/Makefile 2012-02-04 01:24:21.000000000 +0000
++++ b/Makefile 2014-10-29 14:42:08.690188302 +0000
+@@ -4,6 +4,8 @@
+ version.ml pipeline.mli pipeline.ml common.mli common.ml \
+ utils.mli utils.ml ocaml.mli ocaml.ml
+
++CAMLP4 := $(shell ocamlfind query camlp4)
++
+ STDBIN = $(shell dirname `which ocamlfind`)
+ ifndef PREFIX
+ PREFIX = $(shell dirname $(STDBIN))
+@@ -15,7 +17,7 @@
+ endif
+ export BINDIR
+
+-PACKS = unix str
++PACKS = unix str findlib
+ PP = camlp4o -I . -parser pa_tryfinally.cmo -parser pa_opt.cmo
+ export PP
+
+@@ -36,11 +38,11 @@
+
+ common: version.ml
+ ocamlc -pp 'camlp4orf -loc _loc' -c \
+- -I +camlp4 pa_opt310.ml && \
++ -I $(CAMLP4) pa_opt310.ml && \
+ cp pa_opt310.cmo pa_opt.cmo && \
+ cp pa_opt310.cmi pa_opt.cmi
+ ocamlc -pp 'camlp4orf -loc _loc' -c \
+- -I +camlp4 pa_tryfinally310.ml && \
++ -I $(CAMLP4) pa_tryfinally310.ml && \
+ cp pa_tryfinally310.cmo pa_tryfinally.cmo && \
+ cp pa_tryfinally310.cmi pa_tryfinally.cmi
+
+--- a/main.ml 2014-11-08 09:05:12.516401313 +0000
++++ b/main.ml 2014-11-08 09:09:59.801311230 +0000
+@@ -250,9 +250,15 @@
+ Sys.getcwd ())
+ | `File script_name -> "", get_dir script_name in
+
++ let findlibdir =
++ Filename.(
++ concat (Findlib.package_directory "findlib") parent_dir_name
++ ) in
++
+ let file, oc = Filename.open_temp_file "meta" ".ml" in
+ fprintf oc "\
+ #%i %S;;
++#directory \"%s\";;
+ #use \"topfind\";;
+ #require \"ocamlscript\";;
+ Ocamlscript.Common.verbose := %s;;
+@@ -261,7 +267,7 @@
+ open Ocamlscript;;
+ open Utils;;
+ #%i %S;;\n"
+- pos source verbose script_dir extra_args trash pos source;
++ pos source findlibdir verbose script_dir extra_args trash pos source;
+
+ List.iter (output_line oc) lines;
+
+@@ -544,6 +550,7 @@
+ exit compilation_status
+
+ let _ =
++ Findlib.init ();
+ try main ()
+ with Failure s ->
+ eprintf "ocamlscript: %s\n%!" s;
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/default.nix
new file mode 100644
index 000000000000..2172c7f6161a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocamlscript/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, ocaml, findlib, camlp4}:
+stdenv.mkDerivation {
+ name = "ocamlscript-2.0.3";
+ src = fetchurl {
+ url = "http://mjambon.com/releases/ocamlscript/ocamlscript-2.0.3.tar.gz";
+ sha256 = "1v1i24gijxwris8w4hi95r9swld6dm7jbry0zp72767a3g5ivlrd";
+ };
+
+ propagatedBuildInputs = [ ocaml findlib camlp4 ];
+
+ patches = [ ./Makefile.patch ];
+
+ buildFlags = [ "PREFIX=$(out)" ];
+ installFlags = [ "PREFIX=$(out)" ];
+
+ preInstall = "mkdir $out/bin";
+ createFindlibDestdir = true;
+
+ meta = with stdenv.lib; {
+ homepage = "http://martin.jambon.free.fr/ocamlscript.html";
+ license = licenses.boost;
+ platforms = ocaml.meta.platforms or [];
+ description = "Natively-compiled OCaml scripts";
+ maintainers = [ maintainers.vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix
new file mode 100644
index 000000000000..4ebea6766211
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchpatch, fetchFromGitHub, ocaml, findlib, ncurses }:
+let
+ version = "1.99.19-beta";
+in
+stdenv.mkDerivation {
+
+ name = "ocaml${ocaml.version}-ocp-build-${version}";
+
+ src = fetchFromGitHub {
+ owner = "OCamlPro";
+ repo = "ocp-build";
+ rev = version;
+ sha256 = "162k5l0cxyqanxlml5v8mqapdq5qbqc9m4b8wdjq7mf523b3h2zj";
+ };
+
+ patches = stdenv.lib.optional (stdenv.lib.versionAtLeast ocaml.version "4.08") (fetchpatch {
+ url = "https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/ocp-pp/ocp-pp.1.99.19-beta/files/0001-Fix-ocp-pp-for-changes-in-compiler-libs.patch";
+ sha256 = "0s0s2hh4d7cmwd6i7ixjgb79vij0r1v54m0vwwi26b3fips09qyn";
+ });
+
+ buildInputs = [ ocaml findlib ];
+ propagatedBuildInputs = [ ncurses ];
+ preInstall = "mkdir -p $out/bin";
+ preConfigure = ''
+ export configureFlags="$configureFlags --with-metadir=$OCAMLFIND_DESTDIR"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.typerex.org/ocp-build.html";
+ description = "A build tool for OCaml";
+ longDescription = ''
+ ocp-build is a build system for OCaml application, based on simple
+ descriptions of packages. ocp-build combines the descriptions of
+ packages, and optimize the parallel compilation of files depending on
+ the number of cores and the automatically-inferred dependencies
+ between source files.
+ '';
+ license = licenses.gpl3;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = [ maintainers.jirkamarsik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
new file mode 100644
index 000000000000..675f66dcf474
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip, buildDunePackage, cmdliner }:
+
+buildDunePackage rec {
+ version = "1.8.2";
+ pname = "ocp-indent";
+
+ src = fetchzip {
+ url = "https://github.com/OCamlPro/ocp-indent/archive/${version}.tar.gz";
+ sha256 = "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3";
+ };
+
+ minimumOCamlVersion = "4.02";
+
+ buildInputs = [ cmdliner ];
+
+ meta = with lib; {
+ homepage = "http://typerex.ocamlpro.com/ocp-indent.html";
+ description = "A customizable tool to indent OCaml code";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.jirkamarsik ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
new file mode 100644
index 000000000000..9c888e284fc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip, buildDunePackage, cppo, ocp-indent, cmdliner, re }:
+
+buildDunePackage rec {
+ pname = "ocp-index";
+ version = "1.2.1";
+
+ src = fetchzip {
+ url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
+ sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
+ };
+
+ buildInputs = [ cppo cmdliner re ];
+
+ propagatedBuildInputs = [ ocp-indent ];
+
+ meta = {
+ homepage = "http://typerex.ocamlpro.com/ocp-index.html";
+ description = "A simple and light-weight documentation extractor for OCaml";
+ license = lib.licenses.lgpl3;
+ maintainers = with lib.maintainers; [ vbgl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
new file mode 100644
index 000000000000..476c98ce5bc6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchzip, ocamlPackages }:
+
+stdenv.mkDerivation rec
+{
+ pname = "ocsigen-i18n";
+ version = "3.5.0";
+
+ buildInputs = with ocamlPackages; [ ocaml findlib ppx_tools ];
+
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ make bindir=$out/bin install
+ '';
+
+ src = fetchzip {
+ url = "https://github.com/besport/${pname}/archive/${version}.tar.gz";
+ sha256 = "1qsgwfl64b53w235wm7nnchqinzgsvd2gb52xm0kra2wlwp69rfq";
+ };
+
+ meta = {
+ homepage = "https://github.com/besport/ocsigen-i18n";
+ description = "I18n made easy for web sites written with eliom";
+ license = stdenv.lib.licenses.lgpl21;
+ maintainers = [ stdenv.lib.maintainers.gal_bolle ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
new file mode 100644
index 000000000000..6a3c0c20d85f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/0.9.8.6-rc1.nix
@@ -0,0 +1,43 @@
+{stdenv, fetchurl, makeWrapper, ocaml, ncurses}:
+let
+ pname = "omake";
+ version = "0.9.8.6-0.rc1";
+ webpage = "http://omake.metaprl.org";
+in
+
+if stdenv.lib.versionAtLeast ocaml.version "4.06"
+then throw "${pname}-${version} is not available for OCaml ${ocaml.version}"
+else
+
+stdenv.mkDerivation {
+
+ name = "${pname}-${version}";
+
+ src = fetchurl {
+ url = "https://src.fedoraproject.org/repo/pkgs/ocaml-omake/${pname}-${version}.tar.gz/fe39a476ef4e33b7ba2ca77a6bcaded2/${pname}-${version}.tar.gz";
+ sha256 = "1sas02pbj56m7wi5vf3vqrrpr4ynxymw2a8ybvfj2dkjf7q9ii13";
+ };
+ patchFlags = [ "-p0" ];
+ patches = [ ./warn.patch ];
+
+ buildInputs = [ ocaml makeWrapper ncurses ];
+
+ phases = "unpackPhase patchPhase buildPhase";
+ buildPhase = ''
+ make bootstrap
+ make PREFIX=$out all
+ make PREFIX=$out install
+ '';
+# prefixKey = "-prefix ";
+#
+# configureFlags = if transitional then "--transitional" else "--strict";
+#
+# buildFlags = [ "world.opt" ];
+
+ meta = {
+ description = "Omake build system";
+ homepage = webpage;
+ license = "GPL";
+ platforms = ocaml.meta.platforms or [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/default.nix
new file mode 100644
index 000000000000..2afe0d1e9f52
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, ocaml, ncurses }:
+
+stdenv.mkDerivation rec {
+
+ pname = "omake";
+ version = "0.10.3";
+
+ src = fetchurl {
+ url = "http://download.camlcity.org/download/${pname}-${version}.tar.gz";
+ sha256 = "07bdg1h5i7qnlv9xq81ad5hfypl10hxm771h4rjyl5cn8plhfcgz";
+ };
+
+ buildInputs = [ ocaml ncurses ];
+
+ meta = {
+ description = "A build system designed for scalability and portability";
+ homepage = "http://projects.camlcity.org/projects/omake.html";
+ license = with stdenv.lib.licenses; [
+ mit /* scripts */
+ gpl2 /* program */
+ ];
+ inherit (ocaml.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/warn.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/warn.patch
new file mode 100644
index 000000000000..4459e89d7f9c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/omake/warn.patch
@@ -0,0 +1,10 @@
+diff -p1 -aur ../omake-0.9.8.6.ori/lib/build/OCaml.om ./lib/build/OCaml.om
+--- ../omake-0.9.8.6.ori/lib/build/OCaml.om 2008-03-05 01:07:25.000000000 +0000
++++ ./lib/build/OCaml.om 2013-06-01 15:52:37.000000000 +0000
+@@ -178,3 +178,3 @@ declare OCAMLDEPFLAGS
+ public.OCAMLPPFLAGS =
+-public.OCAMLFLAGS = -warn-error A
++public.OCAMLFLAGS =
+ public.OCAMLCFLAGS = -g
+Seulement dans ./lib/build: OCaml.om~
+Seulement dans .: warn.patch
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix
new file mode 100644
index 000000000000..a49749ad716f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opaline/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, ocamlPackages }:
+
+stdenv.mkDerivation rec {
+ version = "0.3.2";
+ pname = "opaline";
+
+ src = fetchFromGitHub {
+ owner = "jaapb";
+ repo = "opaline";
+ rev = "v${version}";
+ sha256 = "1aj1fdqymq3pnr39h47hn3kxk5v9pnwx0jap1z2jzh78x970z21m";
+ };
+
+ buildInputs = with ocamlPackages; [ ocaml findlib ocamlbuild opam-file-format ];
+
+ preInstall = "mkdir -p $out/bin";
+
+ installFlags = [ "PREFIX=$(out)" ];
+
+ meta = {
+ description = "OPAm Light INstaller Engine";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.vbgl ];
+ inherit (src.meta) homepage;
+ inherit (ocamlPackages.ocaml.meta) platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix
new file mode 100644
index 000000000000..e6c08b97aca4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/1.2.2.nix
@@ -0,0 +1,92 @@
+{ stdenv, lib, fetchurl, makeWrapper,
+ ocaml, unzip, ncurses, curl, aspcud
+}:
+
+assert lib.versionAtLeast ocaml.version "3.12.1";
+
+let
+ srcs = {
+ cudf = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/33593/cudf-0.7.tar.gz";
+ sha256 = "92c8a9ed730bbac73f3513abab41127d966c9b9202ab2aaffcd02358c030a701";
+ };
+ extlib = fetchurl {
+ url = "http://ocaml-extlib.googlecode.com/files/extlib-1.5.3.tar.gz";
+ sha256 = "c095eef4202a8614ff1474d4c08c50c32d6ca82d1015387785cf03d5913ec021";
+ };
+ ocaml_re = fetchurl {
+ url = "https://github.com/ocaml/ocaml-re/archive/ocaml-re-1.2.0.tar.gz";
+ sha256 = "a34dd9d6136731436a963bbab5c4bbb16e5d4e21b3b851d34887a3dec451999f";
+ };
+ ocamlgraph = fetchurl {
+ url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.5.tar.gz";
+ sha256 = "d167466435a155c779d5ec25b2db83ad851feb42ebc37dca8ffa345ddaefb82f";
+ };
+ dose3 = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/34277/dose3-3.3.tar.gz";
+ sha256 = "8dc4dae9b1a81bb3a42abb283df785ba3eb00ade29b13875821c69f03e00680e";
+ };
+ cmdliner = fetchurl {
+ url = "https://erratique.ch/software/cmdliner/releases/cmdliner-0.9.7.tbz";
+ sha256 = "9c19893cffb5d3c3469ee0cce85e3eeeba17d309b33b9ace31aba06f68f0bf7a";
+ };
+ uutf = fetchurl {
+ url = "https://erratique.ch/software/uutf/releases/uutf-0.9.3.tbz";
+ sha256 = "1f364f89b1179e5182a4d3ad8975f57389d45548735d19054845e06a27107877";
+ };
+ jsonm = fetchurl {
+ url = "https://erratique.ch/software/jsonm/releases/jsonm-0.9.1.tbz";
+ sha256 = "3fd4dca045d82332da847e65e981d8b504883571d299a3f7e71447d46bc65f73";
+ };
+ opam = fetchurl {
+ url = "https://github.com/ocaml/opam/archive/1.2.2.zip";
+ sha256 = "c590ce55ae69ec74f46215cf16a156a02b23c5f3ecb22f23a3ad9ba3d91ddb6e";
+ };
+ };
+in stdenv.mkDerivation {
+ pname = "opam";
+ version = "1.2.2";
+
+ buildInputs = [ unzip curl ncurses ocaml makeWrapper ];
+
+ src = srcs.opam;
+
+ postUnpack = ''
+ ln -sv ${srcs.cudf} $sourceRoot/src_ext/${srcs.cudf.name}
+ ln -sv ${srcs.extlib} $sourceRoot/src_ext/${srcs.extlib.name}
+ ln -sv ${srcs.ocaml_re} $sourceRoot/src_ext/${srcs.ocaml_re.name}
+ ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/${srcs.ocamlgraph.name}
+ ln -sv ${srcs.dose3} $sourceRoot/src_ext/${srcs.dose3.name}
+ ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/${srcs.cmdliner.name}
+ ln -sv ${srcs.uutf} $sourceRoot/src_ext/${srcs.uutf.name}
+ ln -sv ${srcs.jsonm} $sourceRoot/src_ext/${srcs.jsonm.name}
+ '';
+
+ preConfigure = ''
+ substituteInPlace ./src_ext/Makefile --replace "%.stamp: %.download" "%.stamp:"
+ '';
+
+ postConfigure = "make lib-ext";
+
+ # Dirty, but apparently ocp-build requires a TERM
+ makeFlags = ["TERM=screen"];
+
+ # change argv0 to "opam" as a workaround for
+ # https://github.com/ocaml/opam/issues/2142
+ postInstall = ''
+ mv $out/bin/opam $out/bin/.opam-wrapped
+ makeWrapper $out/bin/.opam-wrapped $out/bin/opam \
+ --argv0 "opam" \
+ --suffix PATH : ${aspcud}/bin:${unzip}/bin:${curl}/bin
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A package manager for OCaml";
+ homepage = "http://opam.ocamlpro.com/";
+ maintainers = [ maintainers.henrytill ];
+ platforms = platforms.all;
+ license = licenses.lgpl21Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
new file mode 100644
index 000000000000..9e95db79dd0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/default.nix
@@ -0,0 +1,120 @@
+{ stdenv, lib, fetchurl, makeWrapper, getconf,
+ ocaml, unzip, ncurses, curl, aspcud, bubblewrap
+}:
+
+assert lib.versionAtLeast ocaml.version "4.02.3";
+
+let
+ srcs = {
+ cmdliner = fetchurl {
+ url = "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.2.tbz";
+ sha256 = "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1";
+ };
+ cppo = fetchurl {
+ url = "https://github.com/mjambon/cppo/archive/v1.6.5.tar.gz";
+ sha256 = "1dkm3d5h6h56y937gcdk2wixlpzl59vv5pmiafglr89p20kf7gqf";
+ };
+ cudf = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/36602/cudf-0.9.tar.gz";
+ sha256 = "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr";
+ };
+ dose3 = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz";
+ sha256 = "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm";
+ };
+ dune-local = fetchurl {
+ url = "https://github.com/ocaml/dune/releases/download/1.6.3/dune-1.6.3.tbz";
+ sha256 = "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz";
+ };
+ extlib = fetchurl {
+ url = "http://ygrek.org.ua/p/release/ocaml-extlib/extlib-1.7.5.tar.gz";
+ sha256 = "19slqf5bdj0rrph2w41giwmn6df2qm07942jn058pjkjrnk30d4s";
+ };
+ mccs = fetchurl {
+ url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+11.tar.gz";
+ sha256 = "0mswapf37rav8nvvbjc4c7c7wnl6qwgd3c5v0nfifmr910qygz72";
+ };
+ ocamlgraph = fetchurl {
+ url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.8.tar.gz";
+ sha256 = "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr";
+ };
+ opam-file-format = fetchurl {
+ url = "https://github.com/ocaml/opam-file-format/archive/2.0.0.tar.gz";
+ sha256 = "0cjw69r7iilidi7b6arr92kjnjspchvwnmwr1b1gyaxqxpr2s98m";
+ };
+ re = fetchurl {
+ url = "https://github.com/ocaml/ocaml-re/releases/download/1.8.0/re-1.8.0.tbz";
+ sha256 = "0qkv42a4hpqpxvqa4kdkkcbhbg7aym9kv4mqgm3m51vxbd0pq0lv";
+ };
+ result = fetchurl {
+ url = "https://github.com/janestreet/result/releases/download/1.3/result-1.3.tbz";
+ sha256 = "1lrnbxdq80gbhnp85mqp1kfk0bkh6q1c93sfz2qgnq2qyz60w4sk";
+ };
+ seq = fetchurl {
+ url = "https://github.com/c-cube/seq/archive/0.1.tar.gz";
+ sha256 = "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r";
+ };
+ opam = fetchurl {
+ url = "https://github.com/ocaml/opam/archive/2.0.7.zip";
+ sha256 = "03yxj4hw9p5dh34b1yzl3xd0l1v2l2az0n7ix453yjrkn0wn0xic";
+ };
+ };
+in stdenv.mkDerivation {
+ pname = "opam";
+ version = "2.0.7";
+
+ buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
+
+ src = srcs.opam;
+
+ postUnpack = ''
+ ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/cmdliner.tbz
+ ln -sv ${srcs.cppo} $sourceRoot/src_ext/cppo.tar.gz
+ ln -sv ${srcs.cudf} $sourceRoot/src_ext/cudf.tar.gz
+ ln -sv ${srcs.dose3} $sourceRoot/src_ext/dose3.tar.gz
+ ln -sv ${srcs.dune-local} $sourceRoot/src_ext/dune-local.tbz
+ ln -sv ${srcs.extlib} $sourceRoot/src_ext/extlib.tar.gz
+ ln -sv ${srcs.mccs} $sourceRoot/src_ext/mccs.tar.gz
+ ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/ocamlgraph.tar.gz
+ ln -sv ${srcs.opam-file-format} $sourceRoot/src_ext/opam-file-format.tar.gz
+ ln -sv ${srcs.re} $sourceRoot/src_ext/re.tbz
+ ln -sv ${srcs.result} $sourceRoot/src_ext/result.tbz
+ ln -sv ${srcs.seq} $sourceRoot/src_ext/seq.tar.gz
+ '';
+
+ patches = [ ./opam-shebangs.patch ];
+
+ preConfigure = ''
+ substituteInPlace ./src_ext/Makefile --replace "%.stamp: %.download" "%.stamp:"
+ patchShebangs src/state/shellscripts
+ '';
+
+ postConfigure = "make lib-ext";
+
+ # Dirty, but apparently ocp-build requires a TERM
+ makeFlags = ["TERM=screen"];
+
+ outputs = [ "out" "installer" ];
+ setOutputFlags = false;
+
+ # change argv0 to "opam" as a workaround for
+ # https://github.com/ocaml/opam/issues/2142
+ postInstall = ''
+ mv $out/bin/opam $out/bin/.opam-wrapped
+ makeWrapper $out/bin/.opam-wrapped $out/bin/opam \
+ --argv0 "opam" \
+ --suffix PATH : ${aspcud}/bin:${unzip}/bin:${curl}/bin:${lib.optionalString stdenv.isLinux "${bubblewrap}/bin:"}${getconf}/bin \
+ --set OPAM_USER_PATH_RO /run/current-system/sw/bin:/nix/
+ $out/bin/opam-installer --prefix=$installer opam-installer.install
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A package manager for OCaml";
+ homepage = "https://opam.ocaml.org/";
+ maintainers = [ maintainers.henrytill maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
+# Generated by: ./opam.nix.pl -v 2.0.7 -p opam-shebangs.patch
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam-shebangs.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam-shebangs.patch
new file mode 100644
index 000000000000..13aa7a895708
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam-shebangs.patch
@@ -0,0 +1,128 @@
+diff --git a/src/client/opamInitDefaults.ml b/src/client/opamInitDefaults.ml
+index eca13a7c..1fd66f43 100644
+--- a/src/client/opamInitDefaults.ml
++++ b/src/client/opamInitDefaults.ml
+@@ -35,11 +35,15 @@ let eval_variables = [
+ let os_filter os =
+ FOp (FIdent ([], OpamVariable.of_string "os", None), `Eq, FString os)
+
++let os_distribution_filter distro =
++ FOp (FIdent ([], OpamVariable.of_string "os-distribution", None), `Eq, FString distro)
++
+ let linux_filter = os_filter "linux"
+ let macos_filter = os_filter "macos"
+ let openbsd_filter = os_filter "openbsd"
+ let freebsd_filter = os_filter "freebsd"
+ let sandbox_filter = FOr (linux_filter, macos_filter)
++let nixos_filter = os_distribution_filter "nixos"
+
+ let gpatch_filter = FOr (openbsd_filter, freebsd_filter)
+ let patch_filter = FNot gpatch_filter
+@@ -50,6 +54,11 @@ let wrappers ~sandboxing () =
+ CString t, None;
+ ] in
+ let w = OpamFile.Wrappers.empty in
++ let w = { w with
++ OpamFile.Wrappers.
++ pre_build = [[CString "%{hooks}%/shebangs.sh", None], Some nixos_filter];
++ }
++ in
+ if sandboxing then
+ { w with
+ OpamFile.Wrappers.
+@@ -113,6 +122,7 @@ let required_tools ~sandboxing () =
+ let init_scripts () = [
+ ("sandbox.sh", OpamScript.bwrap), Some bwrap_filter;
+ ("sandbox.sh", OpamScript.sandbox_exec), Some macos_filter;
++ ("shebangs.sh", OpamScript.patch_shebangs), Some nixos_filter;
+ ]
+
+ module I = OpamFile.InitConfig
+diff --git a/src/state/opamScript.mli b/src/state/opamScript.mli
+index 03449970..83de0b53 100644
+--- a/src/state/opamScript.mli
++++ b/src/state/opamScript.mli
+@@ -20,3 +20,4 @@ val env_hook : string
+ val env_hook_zsh : string
+ val env_hook_csh : string
+ val env_hook_fish : string
++val patch_shebangs : string
+diff --git a/src/state/shellscripts/patch_shebangs.sh b/src/state/shellscripts/patch_shebangs.sh
+new file mode 100755
+index 00000000..3ea84e2d
+--- /dev/null
++++ b/src/state/shellscripts/patch_shebangs.sh
+@@ -0,0 +1,73 @@
++#!/usr/bin/env bash
++# This setup hook causes the fixup phase to rewrite all script
++# interpreter file names (`#! /path') to paths found in $PATH. E.g.,
++# /bin/sh will be rewritten to /nix/store/<hash>-some-bash/bin/sh.
++# /usr/bin/env gets special treatment so that ".../bin/env python" is
++# rewritten to /nix/store/<hash>/bin/python. Interpreters that are
++# already in the store are left untouched.
++
++header() { echo "$1"; }
++stopNest() { true; }
++
++fixupOutputHooks+=('if [ -z "${dontPatchShebangs-}" -a -e "$prefix" ]; then patchShebangs "$prefix"; fi')
++
++patchShebangs() {
++ local dir="$1"
++ header "patching script interpreter paths in $dir"
++ local f
++ local oldPath
++ local newPath
++ local arg0
++ local args
++ local oldInterpreterLine
++ local newInterpreterLine
++
++ find "$dir" -type f -perm -0100 | while read f; do
++ if [ "$(head -1 "$f" | head -c+2)" != '#!' ]; then
++ # missing shebang => not a script
++ continue
++ fi
++
++ oldInterpreterLine=$(head -1 "$f" | tail -c+3)
++ read -r oldPath arg0 args <<< "$oldInterpreterLine"
++
++ if $(echo "$oldPath" | grep -q "/bin/env$"); then
++ # Check for unsupported 'env' functionality:
++ # - options: something starting with a '-'
++ # - environment variables: foo=bar
++ if $(echo "$arg0" | grep -q -- "^-.*\|.*=.*"); then
++ echo "unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)"
++ exit 1
++ fi
++ newPath="$(command -v "$arg0" || true)"
++ else
++ if [ "$oldPath" = "" ]; then
++ # If no interpreter is specified linux will use /bin/sh. Set
++ # oldpath="/bin/sh" so that we get /nix/store/.../sh.
++ oldPath="/bin/sh"
++ fi
++ newPath="$(command -v "$(basename "$oldPath")" || true)"
++ args="$arg0 $args"
++ fi
++
++ # Strip trailing whitespace introduced when no arguments are present
++ newInterpreterLine="$(echo "$newPath $args" | sed 's/[[:space:]]*$//')"
++
++ if [ -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]; then
++ if [ -n "$newPath" -a "$newPath" != "$oldPath" ]; then
++ echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""
++ # escape the escape chars so that sed doesn't interpret them
++ escapedInterpreterLine=$(echo "$newInterpreterLine" | sed 's|\\|\\\\|g')
++ # Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281
++ touch -r "$f" "$f.timestamp"
++ sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"
++ touch -r "$f.timestamp" "$f"
++ rm "$f.timestamp"
++ fi
++ fi
++ done
++
++ stopNest
++}
++
++patchShebangs .
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
new file mode 100755
index 000000000000..828e209fac61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/opam/opam.nix.pl
@@ -0,0 +1,131 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings qw<all>;
+use Getopt::Std;
+
+my $gencmd = "# Generated by: " . join(" ", $0, @ARGV) . "\n";
+
+our $opt_v;
+our $opt_p;
+our $opt_r;
+our $opt_t;
+getopts "v:p:t:r:";
+
+my $OPAM_RELEASE = $opt_v // "2.0.0";
+my $OPAM_TAG = $opt_t // $OPAM_RELEASE;
+my $OPAM_GITHUB_REPO = $opt_r // "ocaml/opam";
+my $OPAM_RELEASE_URL = "https://github.com/$OPAM_GITHUB_REPO/archive/$OPAM_TAG.zip";
+my $OPAM_RELEASE_SHA256 = `nix-prefetch-url \Q$OPAM_RELEASE_URL\E`;
+chomp $OPAM_RELEASE_SHA256;
+
+my $OPAM_BASE_URL = "https://raw.githubusercontent.com/$OPAM_GITHUB_REPO/$OPAM_TAG";
+my $OPAM_OPAM = `curl -L --url \Q$OPAM_BASE_URL\E/opam-devel.opam`;
+my($OCAML_MIN_VERSION) = $OPAM_OPAM =~ /^available: ocaml-version >= "(.*)"$/m
+ or die "could not parse ocaml version bound\n";
+
+print <<"EOF";
+{ stdenv, lib, fetchurl, makeWrapper, getconf,
+ ocaml, unzip, ncurses, curl, aspcud, bubblewrap
+}:
+
+assert lib.versionAtLeast ocaml.version "$OCAML_MIN_VERSION";
+
+let
+ srcs = {
+EOF
+
+my %urls = ();
+my %md5s = ();
+
+open(SOURCES, "-|", "curl", "-L", "--url", "$OPAM_BASE_URL/src_ext/Makefile.sources");
+while (<SOURCES>) {
+ if (/^URL_(?!PKG_)([-\w]+)\s*=\s*(\S+)$/) {
+ $urls{$1} = $2;
+ } elsif (/^MD5_(?!PKG_)([-\w]+)\s*=\s*(\S+)$/) {
+ $md5s{$1} = $2;
+ }
+}
+for my $src (sort keys %urls) {
+ my ($sha256,$store_path) = split /\n/, `nix-prefetch-url --print-path \Q$urls{$src}\E`;
+ system "echo \Q$md5s{$src}\E' *'\Q$store_path\E | md5sum -c 1>&2";
+ die "md5 check failed for $urls{$src}\n" if $?;
+ print <<"EOF";
+ $src = fetchurl {
+ url = "$urls{$src}";
+ sha256 = "$sha256";
+ };
+EOF
+}
+
+print <<"EOF";
+ opam = fetchurl {
+ url = "$OPAM_RELEASE_URL";
+ sha256 = "$OPAM_RELEASE_SHA256";
+ };
+ };
+in stdenv.mkDerivation {
+ pname = "opam";
+ version = "$OPAM_RELEASE";
+
+ buildInputs = [ unzip curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
+
+ src = srcs.opam;
+
+ postUnpack = ''
+EOF
+for my $src (sort keys %urls) {
+ my($ext) = $urls{$src} =~ /(\.(?:t(?:ar\.|)|)(?:gz|bz2?))$/
+ or die "could not find extension for $urls{$src}\n";
+ print <<"EOF";
+ ln -sv \${srcs.$src} \$sourceRoot/src_ext/$src$ext
+EOF
+}
+print <<'EOF';
+ '';
+
+EOF
+if (defined $opt_p) {
+ print " patches = [ ";
+ for my $patch (split /[, ]/, $opt_p) {
+ $patch =~ s/^(?=[^\/]*$)/.\//;
+ print "$patch ";
+ }
+ print "];\n\n";
+}
+print <<'EOF';
+ preConfigure = ''
+ substituteInPlace ./src_ext/Makefile --replace "%.stamp: %.download" "%.stamp:"
+ patchShebangs src/state/shellscripts
+ '';
+
+ postConfigure = "make lib-ext";
+
+ # Dirty, but apparently ocp-build requires a TERM
+ makeFlags = ["TERM=screen"];
+
+ outputs = [ "out" "installer" ];
+ setOutputFlags = false;
+
+ # change argv0 to "opam" as a workaround for
+ # https://github.com/ocaml/opam/issues/2142
+ postInstall = ''
+ mv $out/bin/opam $out/bin/.opam-wrapped
+ makeWrapper $out/bin/.opam-wrapped $out/bin/opam \
+ --argv0 "opam" \
+ --suffix PATH : ${aspcud}/bin:${unzip}/bin:${curl}/bin:${lib.optionalString stdenv.isLinux "${bubblewrap}/bin:"}${getconf}/bin \
+ --set OPAM_USER_PATH_RO /run/current-system/sw/bin:/nix/
+ $out/bin/opam-installer --prefix=$installer opam-installer.install
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A package manager for OCaml";
+ homepage = "https://opam.ocaml.org/";
+ maintainers = [ maintainers.henrytill maintainers.marsam ];
+ platforms = platforms.all;
+ };
+}
+EOF
+print $gencmd;
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix
new file mode 100644
index 000000000000..ac7cd4f4dbbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ocaml/utop/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, ocaml, findlib, dune
+, lambdaTerm, cppo, makeWrapper, buildDunePackage
+}:
+
+if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+then throw "utop is not available for OCaml ${ocaml.version}"
+else
+
+buildDunePackage rec {
+ pname = "utop";
+ version = "2.4.3";
+
+ src = fetchurl {
+ url = "https://github.com/ocaml-community/utop/releases/download/${version}/utop-${version}.tbz";
+ sha256 = "107al0l3x4a5kkjka7glmhsqlm7pwzzc6shspiv5gsjb49pblc2f";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ cppo ];
+
+ propagatedBuildInputs = [ lambdaTerm ];
+
+ postFixup =
+ let
+ path = "etc/utop/env";
+
+ # derivation of just runtime deps so env vars created by
+ # setup-hooks can be saved for use at runtime
+ runtime = stdenv.mkDerivation {
+ pname = "utop-runtime-env";
+ inherit version;
+
+ buildInputs = [ findlib ] ++ propagatedBuildInputs;
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p "$out"/${path}
+ for e in OCAMLPATH CAML_LD_LIBRARY_PATH; do
+ [[ -v "$e" ]] || continue
+ printf %s "''${!e}" > "$out"/${path}/$e
+ done
+ '';
+ };
+
+ get = key: ''$(cat "${runtime}/${path}/${key}")'';
+ in ''
+ for prog in "$out"/bin/*
+ do
+
+ # Note: wrapProgram by default calls 'exec -a $0 ...', but this
+ # breaks utop on Linux with OCaml 4.04, and is disabled with
+ # '--argv0 ""' flag. See https://github.com/NixOS/nixpkgs/issues/24496
+ wrapProgram "$prog" \
+ --argv0 "" \
+ --prefix CAML_LD_LIBRARY_PATH ":" "${get "CAML_LD_LIBRARY_PATH"}" \
+ --prefix OCAMLPATH ":" "${get "OCAMLPATH"}" \
+ --prefix OCAMLPATH ":" $(unset OCAMLPATH; addOCamlPath "$out"; printf %s "$OCAMLPATH") \
+ --add-flags "-I ${findlib}/lib/ocaml/${stdenv.lib.getVersion ocaml}/site-lib"
+ done
+ '';
+
+ meta = {
+ description = "Universal toplevel for OCaml";
+ longDescription = ''
+ utop is an improved toplevel for OCaml. It can run in a terminal or in Emacs. It supports line edition, history, real-time and context sensitive completion, colors, and more.
+
+ It integrates with the tuareg mode in Emacs.
+ '';
+ homepage = "https://github.com/diml/utop";
+ license = stdenv.lib.licenses.bsd3;
+ platforms = ocaml.meta.platforms or [];
+ maintainers = [
+ stdenv.lib.maintainers.gal_bolle
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix
new file mode 100644
index 000000000000..e651c7cfab50
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ofono-phonesim/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, mkDerivation
+, fetchgit
+, autoreconfHook
+, pkgconfig
+, qtbase
+}:
+
+mkDerivation {
+ pname = "ofono-phonesim";
+ version = "unstable-2019-11-18";
+
+ src = fetchgit {
+ url = "git://git.kernel.org/pub/scm/network/ofono/phonesim.git";
+ rev = "adf231a84cd3708b825dc82c56e841dd7e3b4541";
+ sha256 = "1840914sz46l8h2jwa0lymw6dvgj72wq9bhp3k4v4rk6masbf6hp";
+ };
+
+ nativeBuildInputs = [
+ autoreconfHook
+ pkgconfig
+ ];
+
+ buildInputs = [
+ qtbase
+ ];
+
+ makeFlags = [
+ "MOC=${qtbase.dev}/bin/moc"
+ "UIC=${qtbase.dev}/bin/uic"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Phone Simulator for modem testing";
+ homepage = "https://01.org/ofono";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ jtojnar ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/omniorb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/omniorb/default.nix
new file mode 100644
index 000000000000..350407098a41
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/omniorb/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, python2 }:
+stdenv.mkDerivation rec {
+
+ pname = "omniorb";
+
+ version = "4.2.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/project/omniorb/omniORB/omniORB-${version}/omniORB-${version}.tar.bz2";
+ sha256 = "0vvsvi5nx4k7kk4qh1pkf3f5fpz7wv4rsdna4hayihbnvz81rh18";
+ };
+
+ buildInputs = [ python2 ];
+
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "omniORB is a robust high performance CORBA ORB for C++ and Python. It is freely available under the terms of the GNU Lesser General Public License (for the libraries), and GNU General Public License (for the tools). omniORB is largely CORBA 2.6 compliant";
+ homepage = "http://omniorb.sourceforge.net/";
+ license = licenses.gpl2Plus;
+ maintainers = with maintainers; [ smironov ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
new file mode 100644
index 000000000000..c435d80b08fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchurl
+, mono5
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+
+ pname = "omnisharp-roslyn";
+ version = "1.37.1";
+
+ src = fetchurl {
+ url = "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v${version}/omnisharp-mono.tar.gz";
+ sha256 = "04pyychzwhhcv0js0qyramz6nd0wz03qqqgvz1j9m9wxyiz0dv3c";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ preUnpack = ''
+ mkdir src
+ cd src
+ sourceRoot=.
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cd ..
+ cp -r src $out/
+ ls -al $out/src
+ makeWrapper ${mono5}/bin/mono $out/bin/omnisharp \
+ --add-flags "$out/src/OmniSharp.exe"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "OmniSharp based on roslyn workspaces";
+ homepage = "https://github.com/OmniSharp/omnisharp-roslyn";
+ platforms = platforms.linux;
+ license = licenses.mit;
+ maintainers = with maintainers; [ tesq0 ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
new file mode 100644
index 000000000000..d6dbbcc493db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "open-policy-agent";
+ version = "0.24.0";
+
+ goPackagePath = "github.com/open-policy-agent/opa";
+ src = fetchFromGitHub {
+ owner = "open-policy-agent";
+ repo = "opa";
+ rev = "v${version}";
+ sha256 = "0fv2rq8a01hapcpgfqp71v113iyyzs5w1sam14h9clyr1vqrbcf2";
+ };
+
+ subPackages = [ "." ];
+
+ buildFlagsArray = ''
+ -ldflags=
+ -X ${goPackagePath}/version.Version=${version}
+ '';
+
+ meta = with lib; {
+ description = "General-purpose policy engine";
+ homepage = "https://www.openpolicyagent.org";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ lewo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/operator-sdk/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
new file mode 100644
index 000000000000..c803207f88ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, go, lib, fetchFromGitHub, makeWrapper }:
+
+buildGoModule rec {
+ pname = "operator-sdk";
+ version = "1.0.1";
+
+ src = fetchFromGitHub {
+ owner = "operator-framework";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1p2ra7mqn7crip6sjgq2j49782ncvs4qahjwg6jk5rdvvi4hbyc7";
+ };
+
+ vendorSha256 = "0zy540cbfm1kfc5sp802a9a5l2gkpgqprn8mlh9zg4d4shni61wa";
+
+ doCheck = false;
+
+ subPackages = [ "cmd/operator-sdk" ];
+
+ buildInputs = [ go makeWrapper ];
+
+ # operator-sdk uses the go compiler at runtime
+ allowGoReference = true;
+ postFixup = ''
+ wrapProgram $out/bin/operator-sdk --prefix PATH : ${lib.makeBinPath [ go ]}
+ '';
+
+ meta = with lib; {
+ description = "SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding";
+ homepage = "https://github.com/operator-framework/operator-sdk";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ arnarg ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/oq/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/oq/default.nix
new file mode 100644
index 000000000000..04526eb70b6e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/oq/default.nix
@@ -0,0 +1,46 @@
+{ lib, fetchFromGitHub, crystal, jq, libxml2, makeWrapper, fetchpatch }:
+
+crystal.buildCrystalPackage rec {
+ pname = "oq";
+ version = "1.1.0";
+
+ src = fetchFromGitHub {
+ owner = "Blacksmoke16";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1zg4kxpfi3sap4cwp42zg46j5dv0nf926qdqm7k22ncm6jdrgpgw";
+ };
+
+ patches = [
+ (fetchpatch {
+ # remove once we have upgraded to oq 1.1.2+
+ name = "yaml-test-leniency.patch";
+ url = "https://github.com/Blacksmoke16/oq/commit/93ed2fe50c9ce3fd8d35427e007790ddaaafce60.patch";
+ sha256 = "1iyz0c0w0ykz268bkrlqwvh1jnnrja0mqip6y89sbpa14lp0l37n";
+ })
+ ];
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jq libxml2 ];
+
+ format = "crystal";
+ crystalBinaries.oq.src = "src/oq_cli.cr";
+
+ preCheck = ''
+ mkdir bin
+ cp oq bin/oq
+ '';
+
+ postInstall = ''
+ wrapProgram "$out/bin/oq" \
+ --prefix PATH : "${lib.makeBinPath [ jq ]}"
+ '';
+
+ meta = with lib; {
+ description = "A performant, and portable jq wrapper";
+ homepage = "https://blacksmoke16.github.io/oq/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/osslsigncode/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
new file mode 100644
index 000000000000..6924ec9e37a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, libgsf
+, pkgconfig
+, openssl
+, curl
+}:
+
+stdenv.mkDerivation rec {
+ pname = "osslsigncode";
+ version = "unstable-2020-08-02";
+
+ src = fetchFromGitHub {
+ owner = "mtrojnar";
+ repo = pname;
+ rev = "01b3fb5b542ed0b41e3860aeee7a85b735491ff2";
+ sha256 = "03ynm1ycbi86blglma3xiwadck8kc5yb0gawjzlhyv90jidn680l";
+ };
+
+ nativeBuildInputs = [ autoreconfHook libgsf pkgconfig openssl curl ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/mtrojnar/osslsigncode";
+ description = "OpenSSL based Authenticode signing for PE/MSI/Java CAB files";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ mmahut ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/out-of-tree/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
new file mode 100644
index 000000000000..b902dd2cc406
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoModule, fetchgit, qemu, docker, which, makeWrapper }:
+
+buildGoModule rec {
+ pname = "out-of-tree";
+ version = "1.4.0";
+
+ buildInputs = [ makeWrapper ];
+
+ src = fetchgit {
+ rev = "refs/tags/v${version}";
+ url = "https://code.dumpstack.io/tools/${pname}.git";
+ sha256 = "1rn824l3dzh3xjxsbzzj053qg1abhzjimc8l73r0n5qrl44k2qk2";
+ };
+
+ vendorSha256 = "0kg5c4h7xnwfcfshrh5n76xv98wzr73kxzr8q65iphsjimbxcpy3";
+
+ doCheck = false;
+
+ postFixup = ''
+ wrapProgram $out/bin/out-of-tree \
+ --prefix PATH : "${stdenv.lib.makeBinPath [ qemu docker which ]}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "kernel {module, exploit} development tool";
+ homepage = "https://out-of-tree.io";
+ maintainers = [ maintainers.dump_stack ];
+ license = licenses.agpl3Plus;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile
new file mode 100644
index 000000000000..39325c7561b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'overcommit'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile.lock
new file mode 100644
index 000000000000..9a6441e76b89
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/Gemfile.lock
@@ -0,0 +1,17 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ childprocess (3.0.0)
+ iniparse (1.4.4)
+ overcommit (0.51.0)
+ childprocess (>= 0.6.3, < 4)
+ iniparse (~> 1.4)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ overcommit
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/default.nix
new file mode 100644
index 000000000000..5fa3dfa0f03a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/default.nix
@@ -0,0 +1,15 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+ pname = "overcommit";
+ gemdir = ./.;
+ exes = [ "overcommit" ];
+
+ meta = with lib; {
+ description = "Tool to manage and configure Git hooks";
+ homepage = "https://github.com/sds/overcommit";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/gemset.nix
new file mode 100644
index 000000000000..b7d58c0ea708
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/overcommit/gemset.nix
@@ -0,0 +1,33 @@
+{
+ childprocess = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ iniparse = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xbik6838gfh5yq9ahh1m7dzszxlk0g7x5lvhb8amk60mafkrgws";
+ type = "gem";
+ };
+ version = "1.4.4";
+ };
+ overcommit = {
+ dependencies = ["childprocess" "iniparse"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0fjrrm9dy9mry5ss96sizn6xcphia5l54ydz9c31phipm61nwmfk";
+ type = "gem";
+ };
+ version = "0.51.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/packer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/packer/default.nix
new file mode 100644
index 000000000000..d6df39e7a23a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/packer/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+buildGoPackage rec {
+ pname = "packer";
+ version = "1.6.4";
+
+ goPackagePath = "github.com/hashicorp/packer";
+
+ subPackages = [ "." ];
+
+ src = fetchFromGitHub {
+ owner = "hashicorp";
+ repo = "packer";
+ rev = "v${version}";
+ sha256 = "0nkbm5iamkzi5x64107apnwmqxs4a75pxw935pwpm69ry4535r7w";
+ };
+
+ meta = with stdenv.lib; {
+ description = "A tool for creating identical machine images for multiple platforms from a single source configuration";
+ homepage = "https://www.packer.io";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ cstrahan zimbatm ma27 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/packet-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/packet-cli/default.nix
new file mode 100644
index 000000000000..f7bcc8bf8f49
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/packet-cli/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "packet-cli";
+ version = "0.0.8";
+
+ src = fetchFromGitHub {
+ owner = "packethost";
+ repo = pname;
+ rev = version;
+ sha256 = "0ys6zyhyi65g0sj15pb6rslgbjgkh73y32gc0yvhfd6xmgzaxpxf";
+ };
+
+ vendorSha256 = "1h9p3hrr61hwkhkh4qbw0ld3hd5xi75qm8rwfrpz5z06jba1ll25";
+
+ postInstall = ''
+ ln -s $out/bin/packet-cli $out/bin/packet
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Official Packet CLI";
+ homepage = "https://github.com/packethost/packet-cli";
+ license = licenses.mit;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/packet/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/packet/default.nix
new file mode 100644
index 000000000000..9bca1ec75b67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/packet/default.nix
@@ -0,0 +1,25 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "packet";
+ version = "v2.2.2";
+
+ goPackagePath = "github.com/ebsarr/packet";
+
+ src = fetchgit {
+ rev = version;
+ url = "https://github.com/ebsarr/packet";
+ sha256 = "18n8f2rlab4icb28k1b9gnh30zy382v792x07fmcdqq4nkw6wvwf";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = {
+ description = "a CLI tool to manage packet.net services";
+ homepage = "https://github.com/ebsarr/packet";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.grahamc ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/packet/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/packet/deps.nix
new file mode 100644
index 000000000000..53a9bef73207
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/packet/deps.nix
@@ -0,0 +1,156 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/cpuguy83/go-md2man";
+ fetch = {
+ type = "git";
+ url = "https://github.com/cpuguy83/go-md2man";
+ rev = "691ee98543af2f262f35fbb54bdd42f00b9b9cc5";
+ sha256 = "1864g10y9n6ni0p1yqjhvwyjdh0lgxnf7dlb0c4njazdg5rppww9";
+ };
+ }
+ {
+ goPackagePath = "github.com/ebsarr/packngo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ebsarr/packngo";
+ rev = "bc067ae8c334d03f246fd5537dac6d4ed4192ada";
+ sha256 = "1q7w8pdw87ifmkpcayk5qri4lb81bh82jrzh3fdmnbldwmjynyj2";
+ };
+ }
+ {
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "ccc981bf80385c528a65fbfdd49bf2d8da22aa23";
+ sha256 = "0hcrfmiyx27izac3v0ii0qq2kfjvhr9ma1i79hrl6a6y2ayagzz7";
+ };
+ }
+ {
+ goPackagePath = "github.com/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "8cb6e5b959231cc1119e43259c4a608f9c51a241";
+ sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
+ };
+ }
+ {
+ goPackagePath = "github.com/magiconair/properties";
+ fetch = {
+ type = "git";
+ url = "https://github.com/magiconair/properties";
+ rev = "c2353362d570a7bfa228149c62842019201cfb71";
+ sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
+ };
+ }
+ {
+ goPackagePath = "github.com/mitchellh/mapstructure";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mitchellh/mapstructure";
+ rev = "fa473d140ef3c6adf42d6b391fe76707f1f243c8";
+ sha256 = "0f06q4fpzg0c370cvmpsl0iq2apl5nkbz5cd3nba5x5ysmshv1lm";
+ };
+ }
+ {
+ goPackagePath = "github.com/packethost/packngo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/packethost/packngo";
+ rev = "2100ba98e6dc4ca18563d91edfdbba3c4bf46ddb";
+ sha256 = "03iav4lxiir9dphygh5jgqvygs59ci80yfqws34vzy47pxb1wsc8";
+ };
+ }
+ {
+ goPackagePath = "github.com/pelletier/go-toml";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pelletier/go-toml";
+ rev = "c2dbbc24a97911339e01bda0b8cabdbd8f13b602";
+ sha256 = "0v1dsqnk5zmn6ir8jgxijx14s47jvijlqfz3aq435snfrgybd5rz";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/afero";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/afero";
+ rev = "787d034dfe70e44075ccc060d346146ef53270ad";
+ sha256 = "0138rjiacl71h7kvhzinviwvy6qa2m6rflpv9lgqv15hnjvhwvg1";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cast";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cast";
+ rev = "8965335b8c7107321228e3e3702cab9832751bac";
+ sha256 = "177bk7lq40jbgv9p9r80aydpaccfk8ja3a7jjhfwiwk9r1pa4rr2";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "99dc123558852f67743bd0b2caf8383cb3c6d720";
+ sha256 = "0b2rjgycgpkpvpsqgvilqkr66bfk477lyd6l0jxmgxb1h0za5s25";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/jwalterweatherman";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/jwalterweatherman";
+ rev = "14d3d4c518341bea657dd8a226f5121c0ff8c9f2";
+ sha256 = "1f9154lijbz0kkgqwmbphykwl4adv4fvkx6n1p7fdq3x5j9g8i17";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "298182f68c66c05229eb03ac171abe6e309ee79a";
+ sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/viper";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/viper";
+ rev = "0ac2068de99fd349edc4954d0e9b4a600d75da44";
+ sha256 = "1h33gm0m0d4mrwf097v2mpwjza1zmmkqy67a51jjdcrqx1zys8gj";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "fa5fdf94c78965f1aa8423f0cc50b8b8d728b05a";
+ sha256 = "1wrf7y6a1ar1r8yd88zlmic55alx91k5nqks7f8w1d5j7hp1if35";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "6e3c4e7365ddcc329f090f96e4348398f6310088";
+ sha256 = "1r511ncipn7sdlssn06fpzcpy4mp4spagni4ryxq86p2b0bi8pn4";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "5420a8b6744d3b0345ab293f6fcba19c978f1183";
+ sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pandoc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pandoc/default.nix
new file mode 100644
index 000000000000..0bf9ce71e481
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pandoc/default.nix
@@ -0,0 +1,29 @@
+{ haskellPackages, haskell, removeReferencesTo }:
+
+let
+ static = haskell.lib.justStaticExecutables haskellPackages.pandoc;
+
+in
+ (haskell.lib.overrideCabal static (drv: {
+ configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
+ buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
+ buildTools = (drv.buildTools or []) ++ [ removeReferencesTo ];
+ })).overrideAttrs (drv: {
+
+ # These libraries are still referenced, because they generate
+ # a `Paths_*` module for figuring out their version.
+ # The `Paths_*` module is generated by Cabal, and contains the
+ # version, but also paths to e.g. the data directories, which
+ # lead to a transitive runtime dependency on the whole GHC distribution.
+ # This should ideally be fixed in haskellPackages (or even Cabal),
+ # but a minimal pandoc is important enough to patch it manually.
+ disallowedReferences = [ haskellPackages.pandoc-types haskellPackages.HTTP ];
+ postInstall = ''
+ remove-references-to \
+ -t ${haskellPackages.pandoc-types} \
+ $out/bin/pandoc
+ remove-references-to \
+ -t ${haskellPackages.HTTP} \
+ $out/bin/pandoc
+ '';
+ })
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
new file mode 100644
index 000000000000..f697e00b56a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, rustPlatform, fetchFromGitHub, llvmPackages }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "parinfer-rust";
+ version = "0.4.3";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = "parinfer-rust";
+ rev = "v${version}";
+ sha256 = "0hj5in5h7pj72m4ag80ing513fh65q8xlsf341qzm3vmxm3y3jgd";
+ };
+
+ cargoSha256 = "16ylk125p368mcz8nandmfqlygrqjlf8mqaxlbpixqga378saidl";
+
+ nativeBuildInputs = [ llvmPackages.clang ];
+ buildInputs = [ llvmPackages.libclang ];
+ LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+ postInstall = ''
+ mkdir -p $out/share/kak/autoload/plugins
+ cp rc/parinfer.kak $out/share/kak/autoload/plugins/
+
+ rtpPath=$out/share/vim-plugins/parinfer-rust
+ mkdir -p $rtpPath/plugin
+ sed "s,let s:libdir = .*,let s:libdir = '${placeholder "out"}/lib'," \
+ plugin/parinfer.vim >$rtpPath/plugin/parinfer.vim
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Infer parentheses for Clojure, Lisp, and Scheme";
+ homepage = "https://github.com/eraserhd/parinfer-rust";
+ license = licenses.isc;
+ maintainers = with maintainers; [ eraserhd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix
new file mode 100644
index 000000000000..0f8ead579d0a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parse-cli-bin/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "parse-cli-bin";
+ version = "3.0.5";
+
+ src = fetchurl {
+ url = "https://github.com/ParsePlatform/parse-cli/releases/download/release_${version}/parse_linux";
+ sha256 = "1iyfizbbxmr87wjgqiwqds51irgw6l3vm9wn89pc3zpj2zkyvf5h";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Parse Command Line Interface";
+ homepage = "https://parse.com";
+ platforms = platforms.linux;
+ license = licenses.bsd3;
+ };
+
+ phases = "installPhase";
+
+ installPhase = ''
+ mkdir -p "$out/bin"
+ cp "$src" "$out/bin/parse"
+ chmod +x "$out/bin/parse"
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch
new file mode 100644
index 000000000000..a71b7718e3bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7-fixes.patch
@@ -0,0 +1,26 @@
+diff --git a/lib/cpp/antlr/CharScanner.hpp b/lib/cpp/antlr/CharScanner.hpp
+index 8a97e97..1835a3e 100644
+--- a/lib/cpp/antlr/CharScanner.hpp
++++ b/lib/cpp/antlr/CharScanner.hpp
+@@ -11,6 +11,8 @@
+ #include <antlr/config.hpp>
+
+ #include <map>
++#include <cstdio>
++#include <cstring>
+
+ #ifdef HAS_NOT_CCTYPE_H
+ #include <ctype.h>
+diff --git a/scripts/config.make.in b/scripts/config.make.in
+index c23dd5c..6057309 100644
+--- a/scripts/config.make.in
++++ b/scripts/config.make.in
+@@ -38,7 +38,7 @@ MAKEOVERRIDES := $(patsubst SUBDIRS=%,,$(MAKEOVERRIDES))
+ all clean distclean test install force-target clean-target ::
+ @dirs="$(SUBDIRS)" ; \
+ test -z "$${dirs}" && { \
+- dirs=`/bin/ls` ; \
++ dirs=`ls` ; \
+ } ; \
+ for d in . $${dirs} ; do \
+ case $${d} in \
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7.nix
new file mode 100644
index 000000000000..55800a800984
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/2.7.7.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, jdk, python2 }:
+
+stdenv.mkDerivation {
+ name = "antlr-2.7.7";
+ src = fetchurl {
+ url = "https://www.antlr2.org/download/antlr-2.7.7.tar.gz";
+ sha256 = "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5";
+ };
+ patches = [ ./2.7.7-fixes.patch ];
+ buildInputs = [ jdk ];
+ nativeBuildInputs = [ python2 ];
+
+ meta = with stdenv.lib; {
+ description = "Powerful parser generator";
+ longDescription = ''
+ ANTLR (ANother Tool for Language Recognition) is a powerful parser
+ generator for reading, processing, executing, or translating structured
+ text or binary files. It's widely used to build languages, tools, and
+ frameworks. From a grammar, ANTLR generates a parser that can build and
+ walk parse trees.
+ '';
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.4.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.4.nix
new file mode 100644
index 000000000000..1263e7934be7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.4.nix
@@ -0,0 +1,39 @@
+{stdenv, fetchurl, jre}:
+
+stdenv.mkDerivation rec {
+ pname = "antlr";
+ version = "3.4";
+ src = fetchurl {
+ url ="https://www.antlr3.org/download/antlr-${version}-complete.jar";
+ sha256 = "1xqbam8vf04q5fasb0m2n1pn5dbp2yw763sj492ncq04c5mqcglx";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p "$out"/{lib/antlr,bin}
+ cp "$src" "$out/lib/antlr/antlr-${version}-complete.jar"
+
+ echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+ echo "'${jre}/bin/java' -cp '$out/lib/antlr/antlr-${version}-complete.jar' -Xms200M -Xmx400M org.antlr.Tool \"\$@\"" >> "$out/bin/antlr"
+
+ chmod a+x "$out/bin/antlr"
+ ln -s "$out/bin/antlr"{,3}
+ '';
+
+ inherit jre;
+
+ meta = with stdenv.lib; {
+ description = "Powerful parser generator";
+ longDescription = ''
+ ANTLR (ANother Tool for Language Recognition) is a powerful parser
+ generator for reading, processing, executing, or translating structured
+ text or binary files. It's widely used to build languages, tools, and
+ frameworks. From a grammar, ANTLR generates a parser that can build and
+ walk parse trees.
+ '';
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.5.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.5.nix
new file mode 100644
index 000000000000..6fa6323d3e87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/3.5.nix
@@ -0,0 +1,45 @@
+{stdenv, fetchurl, fetchFromGitHub, jre}:
+
+stdenv.mkDerivation rec {
+ pname = "antlr";
+ version = "3.5.2";
+ jar = fetchurl {
+ url = "https://www.antlr3.org/download/antlr-${version}-complete.jar";
+ sha256 = "0srjwxipwsfzmpi0v32d1l5lzk9gi5in8ayg33sq8wyp8ygnbji6";
+ };
+ src = fetchFromGitHub {
+ owner = "antlr";
+ repo = "antlr3";
+ rev = "5c2a916a10139cdb5c7c8851ee592ed9c3b3d4ff";
+ sha256 = "1i0w2v9prrmczlwkfijfp4zfqfgrss90a7yk2hg3y0gkg2s4abbk";
+ };
+
+ installPhase = ''
+ mkdir -p "$out"/{lib/antlr,bin,include}
+ cp "$jar" "$out/lib/antlr/antlr-${version}-complete.jar"
+ cp runtime/Cpp/include/* $out/include/
+
+ echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+ echo "'${jre}/bin/java' -cp '$out/lib/antlr/antlr-${version}-complete.jar' -Xms200M -Xmx400M org.antlr.Tool \"\$@\"" >> "$out/bin/antlr"
+
+ chmod a+x "$out/bin/antlr"
+ ln -s "$out/bin/antlr"{,3}
+ '';
+
+ inherit jre;
+
+ meta = with stdenv.lib; {
+ description = "Powerful parser generator";
+ longDescription = ''
+ ANTLR (ANother Tool for Language Recognition) is a powerful parser
+ generator for reading, processing, executing, or translating structured
+ text or binary files. It's widely used to build languages, tools, and
+ frameworks. From a grammar, ANTLR generates a parser that can build and
+ walk parse trees.
+ '';
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.linux;
+ maintainers = [ stdenv.lib.maintainers.farlion ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/4.7.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/4.7.nix
new file mode 100644
index 000000000000..23267bf24313
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/4.7.nix
@@ -0,0 +1,84 @@
+{ stdenv, fetchurl, jre
+, fetchFromGitHub, cmake, ninja, pkgconfig, libuuid, darwin }:
+
+let
+ version = "4.7.2";
+ source = fetchFromGitHub {
+ owner = "antlr";
+ repo = "antlr4";
+ rev = version;
+ sha256 = "1pl0zs6c6wx9nmq30s7ccpc3dl72az55i8vfp574fw9sywmvxmlj";
+ };
+
+ runtime = {
+ cpp = stdenv.mkDerivation {
+ pname = "antlr-runtime-cpp";
+ inherit version;
+ src = source;
+
+ outputs = [ "out" "dev" "doc" ];
+
+ nativeBuildInputs = [ cmake ninja pkgconfig ];
+ buildInputs = stdenv.lib.optional stdenv.isLinux libuuid
+ ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreFoundation;
+
+ postUnpack = ''
+ export sourceRoot=$sourceRoot/runtime/Cpp
+ '';
+
+ meta = with stdenv.lib; {
+ description = "C++ target for ANTLR 4";
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ };
+ };
+ };
+
+ antlr = stdenv.mkDerivation {
+ pname = "antlr";
+ inherit version;
+
+ src = fetchurl {
+ url ="https://www.antlr.org/download/antlr-${version}-complete.jar";
+ sha256 = "1d40nfkq3ws8g4ksx4gj6l6m2l9j4b605q6sf68z5vvmg5nkhlk8";
+ };
+
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p "$out"/{share/java,bin}
+ cp "$src" "$out/share/java/antlr-${version}-complete.jar"
+
+ echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+ echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
+
+ echo "#! ${stdenv.shell}" >> "$out/bin/grun"
+ echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
+
+ chmod a+x "$out/bin/antlr" "$out/bin/grun"
+ ln -s "$out/bin/antlr"{,4}
+ '';
+
+ inherit jre;
+
+ passthru = {
+ inherit runtime;
+ jarLocation = "${antlr}/share/java/antlr-${version}-complete.jar";
+ };
+
+ meta = with stdenv.lib; {
+ description = "Powerful parser generator";
+ longDescription = ''
+ ANTLR (ANother Tool for Language Recognition) is a powerful parser
+ generator for reading, processing, executing, or translating structured
+ text or binary files. It's widely used to build languages, tools, and
+ frameworks. From a grammar, ANTLR generates a parser that can build and
+ walk parse trees.
+ '';
+ homepage = "https://www.antlr.org/";
+ license = licenses.bsd3;
+ platforms = platforms.unix;
+ };
+ };
+in antlr
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/builder.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/builder.sh
new file mode 100644
index 000000000000..b8e7791b6fc9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/antlr/builder.sh
@@ -0,0 +1,23 @@
+source $stdenv/setup
+
+tar zxvf $src
+cd antlr-*
+cd lib
+
+mkdir -p $out/lib/antlr
+mkdir -p $out/bin
+
+cp *.jar $out/lib/antlr
+
+classpath=""
+for jar in $out/lib/antlr/*.jar; do
+ classpath="$classpath:$jar"
+done
+
+cat > $out/bin/antlr <<EOF
+#! $SHELL
+
+$jre/bin/java -cp $classpath -Xms200M -Xmx400M org.antlr.Tool \$*
+EOF
+
+chmod u+x $out/bin/antlr
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bison/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
new file mode 100644
index 000000000000..70fd733e1ee5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchurl, m4, perl, help2man }:
+
+# 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 = "bison";
+ version = "3.7.2";
+
+ src = fetchurl {
+ url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+ sha256 = "111ax2imnydvrpcys5ami8ixn0a50m7a5pims7cbyysi8h8djp21";
+ };
+
+ nativeBuildInputs = [ m4 perl ] ++ stdenv.lib.optional stdenv.isSunOS help2man;
+ propagatedBuildInputs = [ m4 ];
+
+ doCheck = false; # fails
+ doInstallCheck = false; # fails
+
+ meta = {
+ homepage = "https://www.gnu.org/software/bison/";
+ description = "Yacc-compatible parser generator";
+ license = stdenv.lib.licenses.gpl3Plus;
+
+ longDescription = ''
+ Bison is a general-purpose parser generator that converts an
+ annotated context-free grammar into an LALR(1) or GLR parser for
+ that grammar. Once you are proficient with Bison, you can use
+ it to develop a wide range of language parsers, from those used
+ in simple desk calculators to complex programming languages.
+
+ Bison is upward compatible with Yacc: all properly-written Yacc
+ grammars ought to work with Bison with no change. Anyone
+ familiar with Yacc should be able to use Bison with little
+ trouble. You need to be fluent in C or C++ programming in order
+ to use Bison.
+ '';
+
+ platforms = stdenv.lib.platforms.unix;
+ };
+
+ passthru = { glrSupport = true; };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix
new file mode 100644
index 000000000000..be526085b757
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/byacc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ pname = "byacc";
+ version = "20200330";
+
+ src = fetchurl {
+ urls = [
+ "ftp://ftp.invisible-island.net/byacc/${pname}-${version}.tgz"
+ "https://invisible-mirror.net/archives/byacc/${pname}-${version}.tgz"
+ ];
+ sha256 = "1c0zyn6v286i09jlc8gx6jyaa5438qyy985rqsd76kb8ibfy56g0";
+ };
+
+ configureFlags = [
+ "--program-transform-name='s,^,b,'"
+ ];
+
+ doCheck = true;
+
+ postInstall = ''
+ ln -s $out/bin/byacc $out/bin/yacc
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Berkeley YACC";
+ homepage = "https://invisible-island.net/byacc/byacc.html";
+ license = licenses.publicDomain;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix
new file mode 100644
index 000000000000..504e5b090497
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, autoreconfHook, flex, bison, texinfo, help2man, m4 }:
+
+stdenv.mkDerivation {
+ name = "flex-2.5.35";
+
+ src = fetchurl {
+ url = "https://github.com/westes/flex/archive/flex-2-5-35.tar.gz";
+ sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm";
+ };
+
+ postPatch = ''
+ patchShebangs tests
+ '';
+
+ nativeBuildInputs = [ flex bison texinfo help2man autoreconfHook ];
+
+ propagatedBuildInputs = [ m4 ];
+
+ preConfigure = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "ac_cv_func_malloc_0_nonnull=yes"
+ "ac_cv_func_realloc_0_nonnull=yes"
+ ];
+
+ doCheck = false; # fails 2 out of 46 tests
+
+ meta = with stdenv.lib; {
+ branch = "2.5.35";
+ homepage = "http://flex.sourceforge.net/";
+ description = "A fast lexical analyser generator";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.6.1.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.6.1.nix
new file mode 100644
index 000000000000..2562b3c26134
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/2.6.1.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, bison, m4 }:
+
+stdenv.mkDerivation {
+ name = "flex-2.6.1";
+
+ src = fetchurl {
+ url = "https://github.com/westes/flex/releases/download/v2.6.1/flex-2.6.1.tar.gz";
+ sha256 = "0fy14c35yz2m1n1m4f02by3501fn0cca37zn7jp8lpp4b3kgjhrw";
+ };
+
+ postPatch = ''
+ patchShebangs tests
+ '' + stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+ substituteInPlace Makefile.in --replace "tests" " ";
+ '';
+
+ buildInputs = [ bison ];
+
+ propagatedBuildInputs = [ m4 ];
+
+ preConfigure = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "ac_cv_func_malloc_0_nonnull=yes"
+ "ac_cv_func_realloc_0_nonnull=yes"
+ ];
+
+ postConfigure = stdenv.lib.optionalString (stdenv.isDarwin || stdenv.isCygwin) ''
+ sed -i Makefile -e 's/-no-undefined//;'
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/westes/flex";
+ description = "A fast lexical analyser generator";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/default.nix
new file mode 100644
index 000000000000..51373f4a4fd7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flex/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, buildPackages, fetchurl, bison, m4
+, fetchpatch, autoreconfHook, help2man
+}:
+
+stdenv.mkDerivation rec {
+ pname = "flex";
+ version = "2.6.4";
+
+ src = fetchurl {
+ url = "https://github.com/westes/flex/releases/download/v${version}/flex-${version}.tar.gz";
+ sha256 = "15g9bv236nzi665p9ggqjlfn4dwck5835vf0bbw2cz7h5c1swyp8";
+ };
+
+ # Also upstream, will be part of 2.6.5
+ # https://github.com/westes/flex/commit/24fd0551333e
+ patches = [(fetchpatch {
+ name = "glibc-2.26.patch";
+ url = "https://raw.githubusercontent.com/lede-project/source/0fb14a2b1ab2f82c"
+ + "/tools/flex/patches/200-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch";
+ sha256 = "1aarhcmz7mfrgh15pkj6f7ikxa2m0mllw1i1vscsf1kw5d05lw6f";
+ })];
+
+ postPatch = ''
+ patchShebangs tests
+ '' + stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+ substituteInPlace Makefile.in --replace "tests" " "
+
+ substituteInPlace doc/Makefile.am --replace 'flex.1: $(top_srcdir)/configure.ac' 'flex.1: '
+ '';
+
+ depsBuildBuild = [ buildPackages.stdenv.cc ];
+ nativeBuildInputs = [ autoreconfHook help2man ];
+ buildInputs = [ bison ];
+ propagatedBuildInputs = [ m4 ];
+
+ preConfigure = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ "ac_cv_func_malloc_0_nonnull=yes"
+ "ac_cv_func_realloc_0_nonnull=yes"
+ ];
+
+ postConfigure = stdenv.lib.optionalString (stdenv.isDarwin || stdenv.isCygwin) ''
+ sed -i Makefile -e 's/-no-undefined//;'
+ '';
+
+ dontDisableStatic = stdenv.buildPlatform != stdenv.hostPlatform;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/westes/flex";
+ description = "A fast lexical analyser generator";
+ license = licenses.bsd2;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix
new file mode 100644
index 000000000000..a9482f9fd493
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/flexc++/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, bobcat, icmake, yodl }:
+
+stdenv.mkDerivation rec {
+ pname = "flexc++";
+ version = "2.05.00";
+
+ src = fetchFromGitHub {
+ sha256 = "0s25d9jsfsqvm34rwf48cxwz23aq1zja3cqlzfz3z33p29wwazwz";
+ rev = version;
+ repo = "flexcpp";
+ owner = "fbb-git";
+ };
+
+ setSourceRoot = ''
+ sourceRoot=$(echo */flexc++)
+ '';
+
+ buildInputs = [ bobcat ];
+ nativeBuildInputs = [ icmake yodl ];
+
+ postPatch = ''
+ substituteInPlace INSTALL.im --replace /usr $out
+ patchShebangs .
+ '';
+
+ buildPhase = ''
+ ./build man
+ ./build manual
+ ./build program
+ '';
+
+ installPhase = ''
+ ./build install x
+ '';
+
+ meta = with stdenv.lib; {
+ description = "C++ tool for generating lexical scanners";
+ longDescription = ''
+ Flexc++ was designed after `flex'. Flexc++ offers a cleaner class design
+ and requires simpler specification files than offered by flex's C++
+ option.
+ '';
+ homepage = "https://fbb-git.github.io/flexcpp/";
+ license = licenses.gpl3;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/hammer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/hammer/default.nix
new file mode 100644
index 000000000000..d36dfa9219d4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/hammer/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, glib, pkgconfig, python, scons }:
+
+stdenv.mkDerivation {
+ pname = "hammer";
+ version = "e7aa734";
+
+ src = fetchgit {
+ url = "git://github.com/UpstandingHackers/hammer";
+ sha256 = "01l0wbhz7dymxlndacin2vi8sqwjlw81ds2i9xyi200w51nsdm38";
+ rev = "47f34b81e4de834fd3537dd71928c4f3cdb7f533";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib python scons ];
+
+ meta = with stdenv.lib; {
+ description = "A bit-oriented parser combinator library";
+ longDescription = ''
+ Hammer is a parsing library. Like many modern parsing libraries,
+ it provides a parser combinator interface for writing grammars
+ as inline domain-specific languages, but Hammer also provides a
+ variety of parsing backends. It's also bit-oriented rather than
+ character-oriented, making it ideal for parsing binary data such
+ as images, network packets, audio, and executables.
+ '';
+ homepage = "https://github.com/UpstandingHackers/hammer";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
new file mode 100644
index 000000000000..18dd531e4b14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jikespg/default.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+ name = "jikespg-1.3";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/jikes/${name}.tar.gz";
+ sha256 = "083ibfxaiw1abxmv1crccx1g6sixkbyhxn2hsrlf6fwii08s6rgw";
+ };
+
+ sourceRoot = "jikespg/src";
+
+ installPhase =
+ ''
+ mkdir -p $out/bin
+ cp jikespg $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "http://jikes.sourceforge.net/";
+ description = "The Jikes Parser Generator";
+ platforms = platforms.linux;
+ license = licenses.ipl10;
+ maintainers = with maintainers; [ pSub ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix
new file mode 100644
index 000000000000..04a1a637207d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/jshon/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, jansson }:
+
+stdenv.mkDerivation rec {
+ pname = "jshon";
+ version = "20170302";
+
+ src = fetchFromGitHub {
+ owner = "keenerd";
+ repo = "jshon";
+ rev = "d919aeaece37962251dbe6c1ee50f0028a5c90e4";
+ sha256 = "1x4zfmsjq0l2y994bxkhx3mn5vzjxxr39iib213zjchi9h6yxvnc";
+ };
+
+ buildInputs = [ jansson ];
+
+ patches = [
+ (fetchpatch {
+ # https://github.com/keenerd/jshon/pull/62
+ url = "https://github.com/keenerd/jshon/commit/96b4e9dbf578be7b31f29740b608aa7b34df3318.patch";
+ sha256 = "0kwbn3xb37iqb5y1n8vhzjiwlbg5jmki3f38pzakc24kzc5ksmaa";
+ })
+ ];
+
+ postPatch =
+ ''
+ substituteInPlace Makefile --replace "/usr/" "/"
+ '';
+
+ preInstall =
+ ''
+ export DESTDIR=$out
+ '';
+
+ meta = with lib; {
+ homepage = "http://kmkeen.com/jshon";
+ description = "JSON parser designed for maximum convenience within the shell";
+ license = licenses.free;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ rushmorem ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix
new file mode 100644
index 000000000000..b10e98909517
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/lemon/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchurl }:
+
+let
+
+ srcs = {
+ lemon = fetchurl {
+ sha256 = "1c5pk2hz7j9hix5mpc38rwnm8dnlr2jqswf4lan6v78ccbyqzkjx";
+ url = "http://www.sqlite.org/src/raw/tool/lemon.c?name=680980c7935bfa1edec20c804c9e5ba4b1dd96f5";
+ name = "lemon.c";
+ };
+ lempar = fetchurl {
+ sha256 = "1ba13a6yh9j2cs1aw2fh4dxqvgf399gxq1gpp4sh8q0f2w6qiw3i";
+ url = "http://www.sqlite.org/src/raw/tool/lempar.c?name=01ca97f87610d1dac6d8cd96ab109ab1130e76dc";
+ name = "lempar.c";
+ };
+ };
+
+in stdenv.mkDerivation {
+ pname = "lemon";
+ version = "1.69";
+
+ phases = [ "buildPhase" "installPhase" ];
+
+ buildPhase = ''
+ sh -xc "$CC ${srcs.lemon} -o lemon"
+ '';
+
+ installPhase = ''
+ install -Dvm755 lemon $out/bin/lemon
+ install -Dvm644 ${srcs.lempar} $out/bin/lempar.c
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An LALR(1) parser generator";
+ longDescription = ''
+ The Lemon program is an LALR(1) parser generator that takes a
+ context-free grammar and converts it into a subroutine that will parse a
+ file using that grammar. Lemon is similar to the much more famous
+ programs "yacc" and "bison", but is not compatible with either.
+ '';
+ homepage = "http://www.hwaci.com/sw/lemon/";
+ license = licenses.publicDomain;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/peg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/peg/default.nix
new file mode 100644
index 000000000000..458ddc007f5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/peg/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "peg-0.1.18";
+
+ src = fetchurl {
+ url = "${meta.homepage}/${name}.tar.gz";
+ sha256 = "114h1y4k8fwcq9m0hfk33dsp7ah8zxzjjzlk71x4iirzczfkn690";
+ };
+
+ preBuild="makeFlagsArray+=( PREFIX=$out )";
+
+ meta = with stdenv.lib; {
+ homepage = "http://piumarta.com/software/peg/";
+ description = "Tools for generating recursive-descent parsers: programs that perform pattern matching on text";
+ platforms = platforms.all;
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix
new file mode 100644
index 000000000000..dddddba129c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/ragel/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, transfig, tex, ghostscript, colm
+, build-manual ? false
+}:
+
+let
+ generic = { version, sha256, license }:
+ stdenv.mkDerivation rec {
+ pname = "ragel";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://www.colm.net/files/ragel/${pname}-${version}.tar.gz";
+ inherit sha256;
+ };
+
+ buildInputs = stdenv.lib.optional build-manual [ transfig ghostscript tex ];
+
+ preConfigure = stdenv.lib.optional build-manual ''
+ sed -i "s/build_manual=no/build_manual=yes/g" DIST
+ '';
+
+ configureFlags = [ "--with-colm=${colm}" ];
+
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-std=gnu++98";
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.colm.net/open-source/ragel/";
+ description = "State machine compiler";
+ inherit license;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ pSub ];
+ };
+ };
+
+in
+
+{
+ ragelStable = generic {
+ version = "6.10";
+ sha256 = "0gvcsl62gh6sg73nwaxav4a5ja23zcnyxncdcdnqa2yjcpdnw5az";
+ license = stdenv.lib.licenses.gpl2;
+ };
+
+ ragelDev = generic {
+ version = "7.0.0.12";
+ sha256 = "0x3si355lv6q051lgpg8bpclpiq5brpri5lv3p8kk2qhzfbyz69r";
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
new file mode 100644
index 000000000000..482beeff1221
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/re2c/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+ pname = "re2c";
+ version = "1.3";
+
+ src = fetchFromGitHub {
+ owner = "skvadrik";
+ repo = "re2c";
+ rev = version;
+ sha256 = "0aqlf2h6i2m3dq11dkq89p4w4c9kp4x66s5rhp84gmpz5xqv1x5h";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "CVE-2020-11958.patch";
+ url = "https://github.com/skvadrik/re2c/commit/c4603ba5ce229db83a2a4fb93e6d4b4e3ec3776a.patch";
+ sha256 = "1d95ahxk92g7k87sda9gxgmr3blyfzwd2y7h9jxj8zkd74knd9zh";
+ })
+ ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ doCheck = true;
+ enableParallelBuilding = true;
+
+ preCheck = ''
+ patchShebangs run_tests.sh
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Tool for writing very fast and very flexible scanners";
+ homepage = "http://re2c.org";
+ license = licenses.publicDomain;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ thoughtpolice ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
new file mode 100644
index 000000000000..63082f60ac2c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -0,0 +1,103 @@
+{ lib, stdenv
+, fetchgit, fetchFromGitHub, fetchurl
+, writeShellScript, runCommand, which
+, rustPlatform, jq, nix-prefetch-git, xe, curl, emscripten
+, callPackage
+}:
+
+# TODO: move to carnix or https://github.com/kolloch/crate2nix
+let
+ # to update:
+ # 1) change all these hashes
+ # 2) nix-build -A tree-sitter.updater.update-all-grammars
+ # 3) run the ./result script that is output by that (it updates ./grammars)
+ version = "0.17.1";
+ sha256 = "sha256-k61actAEyao/Ea8aw9PCm252U+1I0d43MAYC68/lui4=";
+ cargoSha256 = "sha256-Jp/Fl20ZZfaIdWinOOujNVH5JjJNtyUYHfyTrmeeoRg=";
+
+ src = fetchFromGitHub {
+ owner = "tree-sitter";
+ repo = "tree-sitter";
+ rev = version;
+ inherit sha256;
+ fetchSubmodules = true;
+ };
+
+ update-all-grammars = import ./update.nix {
+ inherit writeShellScript nix-prefetch-git curl jq xe src;
+ };
+
+ fetchGrammar = (v: fetchgit {inherit (v) url rev sha256 fetchSubmodules; });
+
+ grammars =
+ runCommand "grammars" {} (''
+ mkdir $out
+ '' + (lib.concatStrings (lib.mapAttrsToList
+ (name: grammar: "ln -s ${fetchGrammar grammar} $out/${name}\n")
+ (import ./grammars))));
+
+ builtGrammars = let
+ change = name: grammar:
+ callPackage ./library.nix {
+ language = name; inherit version; source = fetchGrammar grammar;
+ };
+ in
+ # typescript doesn't have parser.c in the same place as others
+ lib.mapAttrs change (removeAttrs (import ./grammars) ["typescript"]);
+
+in rustPlatform.buildRustPackage {
+ pname = "tree-sitter";
+ inherit src version cargoSha256;
+
+ nativeBuildInputs = [ emscripten which ];
+
+ postPatch = ''
+ # needed for the tests
+ rm -rf test/fixtures/grammars
+ ln -s ${grammars} test/fixtures/grammars
+
+ # These functions do not appear in the source code
+ sed -i /_ts_query_context/d lib/binding_web/exports.json
+ sed -i /___assert_fail/d lib/binding_web/exports.json
+ '';
+
+ # Compile web assembly with emscripten. The --debug flag prevents us from
+ # minifying the JavaScript; passing it allows us to side-step more Node
+ # JS dependencies for installation.
+ preBuild = ''
+ bash ./script/build-wasm --debug
+ '';
+
+ # test result: FAILED. 120 passed; 13 failed; 0 ignored; 0 measured; 0 filtered out
+ doCheck = false;
+
+ passthru = {
+ updater = {
+ inherit update-all-grammars;
+ };
+ inherit grammars;
+ inherit builtGrammars;
+ };
+
+ meta = {
+ homepage = "https://github.com/tree-sitter/tree-sitter";
+ description = "A parser generator tool and an incremental parsing library";
+ longDescription = ''
+ Tree-sitter is a parser generator tool and an incremental parsing library.
+ It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited.
+
+ Tree-sitter aims to be:
+
+ * General enough to parse any programming language
+ * Fast enough to parse on every keystroke in a text editor
+ * Robust enough to provide useful results even in the presence of syntax errors
+ * Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
+ '';
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ Profpatsch ];
+ # Darwin needs some more work with default libraries
+ # Aarch has test failures with how tree-sitter compiles the generated C files
+ broken = stdenv.isDarwin || stdenv.isAarch64;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
new file mode 100644
index 000000000000..083dc61a96f8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -0,0 +1,17 @@
+{
+ bash = (builtins.fromJSON (builtins.readFile ./tree-sitter-bash.json));
+ c = (builtins.fromJSON (builtins.readFile ./tree-sitter-c.json));
+ cpp = (builtins.fromJSON (builtins.readFile ./tree-sitter-cpp.json));
+ embedded-template = (builtins.fromJSON (builtins.readFile ./tree-sitter-embedded-template.json));
+ go = (builtins.fromJSON (builtins.readFile ./tree-sitter-go.json));
+ html = (builtins.fromJSON (builtins.readFile ./tree-sitter-html.json));
+ javascript = (builtins.fromJSON (builtins.readFile ./tree-sitter-javascript.json));
+ jsdoc = (builtins.fromJSON (builtins.readFile ./tree-sitter-jsdoc.json));
+ json = (builtins.fromJSON (builtins.readFile ./tree-sitter-json.json));
+ lua = (builtins.fromJSON (builtins.readFile ./tree-sitter-lua.json));
+ php = (builtins.fromJSON (builtins.readFile ./tree-sitter-php.json));
+ python = (builtins.fromJSON (builtins.readFile ./tree-sitter-python.json));
+ ruby = (builtins.fromJSON (builtins.readFile ./tree-sitter-ruby.json));
+ rust = (builtins.fromJSON (builtins.readFile ./tree-sitter-rust.json));
+ typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json
new file mode 100644
index 000000000000..f1d5efbe7ea0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bash.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-bash",
+ "rev": "e213464b5062017dc058cfb7effe2fc7a2eebb04",
+ "date": "2020-03-02T14:55:46+01:00",
+ "path": "/nix/store/napdz7i4k0gz469zsszdlvr5hmj8y7i9-tree-sitter-bash",
+ "sha256": "0wz9rmpd36g88l2hhy1xl3i5d6a6di1jlw11qkvccgg16kb9p4h7",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
new file mode 100644
index 000000000000..401bea63e0ac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-c",
+ "rev": "99151b1e9293c9e025498fee7e6691e1a52e1d03",
+ "date": "2020-05-14T11:39:30-07:00",
+ "path": "/nix/store/b5xqnw967s9a58wcpyspbkgbph6jxarv-tree-sitter-c",
+ "sha256": "07ax01r3npw13jlv20k15q2hdhqa0rwm2km6f5j50byqvmgfc6fm",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
new file mode 100644
index 000000000000..99af884be9f7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cpp.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-cpp",
+ "rev": "5e7476bd014445abdae879661e9caf299215478a",
+ "date": "2020-05-14T11:46:56-07:00",
+ "path": "/nix/store/xz540ah1xx06n3wwmk3ym72nj0bz82hh-tree-sitter-cpp",
+ "sha256": "0v2l5269bhbpzcd929r3pn88gqcczx6spsq7p6ibsvsydbwj95wx",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json
new file mode 100644
index 000000000000..f0ef7079bf67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-embedded-template.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-embedded-template",
+ "rev": "8269c1360e5b1b9ba3e04e7896d9dd2f060de12f",
+ "date": "2020-07-20T12:50:27-07:00",
+ "path": "/nix/store/9ijnzv72vc1n56k6f1xp3kb7lc9hvlhh-tree-sitter-embedded-template",
+ "sha256": "03symsaxp8m128cn5h14pnm30ihpc49syb4vybpdvgcvraa408qq",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
new file mode 100644
index 000000000000..67d58d64063a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-go",
+ "rev": "34181774b3e86b7801c939c79c7b80a82df91a2b",
+ "date": "2020-08-13T12:21:50-07:00",
+ "path": "/nix/store/3a5w7pz1m74y0lhbzq3bw3k2297lypqs-tree-sitter-go",
+ "sha256": "0cfi7ghs0m3iqwd4jvsqgsj4gnfikn1j2q0wbkdfvz2j25l0qwq0",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
new file mode 100644
index 000000000000..7e53e76c0dea
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-html",
+ "rev": "7f442e1c6163d450c69c75c7a621badc3a0ea98f",
+ "date": "2020-07-20T12:46:52-07:00",
+ "path": "/nix/store/qklk97krsas1kjbh8dp6ii1gj9sqz8h9-tree-sitter-html",
+ "sha256": "0z249nnxlal8g6zbrys6kb80vksgcw2j5nd737m6yna2h5bhl126",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
new file mode 100644
index 000000000000..9020e8a40bc3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-javascript.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-javascript",
+ "rev": "3d5493495b62b4ff8e8c24aee7519dd904e25813",
+ "date": "2020-09-21T17:18:41-07:00",
+ "path": "/nix/store/bhjws8yif1ihhvhfsrdrp4inf03ks08r-tree-sitter-javascript",
+ "sha256": "10fscmclcgl1a0314ppkfy0s7pmiiz5vjipbmks76608kic8nzpp",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json
new file mode 100644
index 000000000000..5dca4a5f9615
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-jsdoc.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-jsdoc",
+ "rev": "77e7785739ad3e90c3de8ed5a55418a5fd2b8225",
+ "date": "2020-05-14T14:58:51-07:00",
+ "path": "/nix/store/3wp3hff203z15fvbnizcqzic1pjxmpg4-tree-sitter-jsdoc",
+ "sha256": "0i2ac7i0vs46668q56dpmd9c02vcyy3f8rh4i0dbvd3rvihifbgc",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
new file mode 100644
index 000000000000..a70809369888
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-json",
+ "rev": "d3976b27df8622ed17bef6dd5e358b398e73c676",
+ "date": "2020-05-14T14:59:27-07:00",
+ "path": "/nix/store/ds2wnlrh289rsnjx828h3jy1706g3x21-tree-sitter-json",
+ "sha256": "1cbhsmzbjni0mynjcai6gshhg16nls82v9lcihxf350dz57f7sax",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
new file mode 100644
index 000000000000..267d25a52a0b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-lua.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/nvim-treesitter/tree-sitter-lua",
+ "rev": "278b0ea1f1f3d86afc86faaca0cbbf6c01182a54",
+ "date": "2020-09-08T18:29:23+02:00",
+ "path": "/nix/store/xkaqsw030bf6zd6pivrzrg3d50j1ka1k-tree-sitter-lua",
+ "sha256": "0i8jdp0bbl02h58hfhpild4v3rvy8yk5r5l90navvfxw4ad4f6f3",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
new file mode 100644
index 000000000000..1fb2a0798481
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-php",
+ "rev": "b0c0367d4b7058921fdc4ba11e257441a64ab809",
+ "date": "2020-07-29T16:56:25-07:00",
+ "path": "/nix/store/la06yzcv5w1dpp31s4clllkfic8rs98a-tree-sitter-php",
+ "sha256": "0a47rr1d5dg70kfvk257g7mhpcwslv6prxc7012spxcrfiwbx89l",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
new file mode 100644
index 000000000000..1c057f51ea99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-python.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-python",
+ "rev": "30f538aa1f932a2864c102694761d3127a61dc68",
+ "date": "2020-09-21T13:21:51-07:00",
+ "path": "/nix/store/bxv85lm636xdsdqjf4n7sxjlhhh35qnv-tree-sitter-python",
+ "sha256": "0hzzz90pn1qwyl5xk03cah62rbvp1c1yp1pw2m3hifqflxg4rs1g",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
new file mode 100644
index 000000000000..06418942b4de
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-ruby",
+ "rev": "a6fcb529e9097a2efbbb3f4857e42773e7f2474f",
+ "date": "2020-05-26T16:18:48-07:00",
+ "path": "/nix/store/yqd5b7ky21scahnhrik9psalbkwi3ab3-tree-sitter-ruby",
+ "sha256": "0bxg5lfdazz5mlfnf0amcygvc8b2ydzl2blvbbhnziyx92r8di6q",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
new file mode 100644
index 000000000000..9f037cdc0947
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-rust",
+ "rev": "40620bf4097cbc9cea79504d7e877865df43a19e",
+ "date": "2020-05-15T10:53:35-07:00",
+ "path": "/nix/store/r24bba6gxchb5zqzghna8yjvqnngbv4a-tree-sitter-rust",
+ "sha256": "0hjp6nsskw341g97x41481b3zfwh8g853fs9six6j1mh92irmv6y",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
new file mode 100644
index 000000000000..7081d3036cf1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -0,0 +1,10 @@
+{
+ "url": "https://github.com/tree-sitter/tree-sitter-typescript",
+ "rev": "5a38a5bd04364d9f48b902fd1514e075b98b0edc",
+ "date": "2020-09-17T10:19:01-07:00",
+ "path": "/nix/store/b3q7vz9zhgjdbv3c2xap4k2ghpdjp2yf-tree-sitter-typescript",
+ "sha256": "1mxwvzqbaaq11cz7zidiwr29fs0b6ycf3nadwdkgiz8c6x2xx398",
+ "fetchSubmodules": false,
+ "deepClone": false,
+ "leaveDotGit": false
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/library.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/library.nix
new file mode 100644
index 000000000000..36245ff7d449
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/library.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, language
+, tree-sitter
+, version
+, source
+}:
+
+stdenv.mkDerivation {
+
+ pname = "tree-sitter-${language}-library";
+ inherit version;
+
+ src = source;
+
+ buildInputs = [ tree-sitter ];
+
+ dontUnpack = true;
+ configurePhase= ":";
+ buildPhase = ''
+ runHook preBuild
+ scanner_cc="$src/src/scanner.cc"
+ if [ ! -f "$scanner_cc" ]; then
+ scanner_cc=""
+ fi
+ $CC -I$src/src/ -shared -o parser -Os $src/src/parser.c $scanner_cc -lstdc++
+ runHook postBuild
+ '';
+ installPhase = ''
+ runHook preInstall
+ mkdir $out
+ mv parser $out/
+ runHook postInstall
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
new file mode 100644
index 000000000000..2a3575a44d20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -0,0 +1,68 @@
+{ writeShellScript, nix-prefetch-git
+, curl, jq, xe
+, src }:
+
+let
+ # print all the grammar names mentioned in the fetch-fixtures script
+ getGrammarNames = writeShellScript "get-grammars.sh" ''
+ set -euo pipefail
+ sed -ne 's/^fetch_grammar \(\S*\).*$/\1/p' \
+ ${src}/script/fetch-fixtures
+ '';
+
+ # TODO
+ urlEscape = x: x;
+ # TODO
+ urlEscapeSh = writeShellScript "escape-url" ''printf '%s' "$1"'';
+
+ # generic bash script to find the latest github release for a repo
+ latestGithubRelease = { owner }: writeShellScript "latest-github-release" ''
+ set -euo pipefail
+ repo="$1"
+ res=$(${curl}/bin/curl \
+ --silent \
+ "https://api.github.com/repos/${urlEscape owner}/$(${urlEscapeSh} "$repo")/releases/latest")
+ if [[ "$(printf "%s" "$res" | ${jq}/bin/jq '.message')" =~ "rate limit" ]]; then
+ echo "rate limited" >&2
+ fi
+ release=$(printf "%s" "$res" | ${jq}/bin/jq '.tag_name')
+ # github sometimes returns an empty list even tough there are releases
+ if [ "$release" = "null" ]; then
+ echo "uh-oh, latest for $repo is not there, using HEAD" >&2
+ release="HEAD"
+ fi
+ echo "$release"
+ '';
+
+ # update one tree-sitter grammar repo and print their nix-prefetch-git output
+ updateGrammar = { owner }: writeShellScript "update-grammar.sh" ''
+ set -euo pipefail
+ repo="$1"
+ latest="$(${latestGithubRelease { inherit owner; }} "$repo")"
+ echo "Fetching latest release ($latest) of $repo …" >&2
+ ${nix-prefetch-git}/bin/nix-prefetch-git \
+ --quiet \
+ --no-deepClone \
+ --url "https://github.com/${urlEscape owner}/$(${urlEscapeSh} "$repo")" \
+ --rev "$latest"
+ '';
+
+ update-all-grammars = writeShellScript "update-all-grammars.sh" ''
+ set -euo pipefail
+ grammarNames=$(${getGrammarNames})
+ outputDir="${toString ./.}/grammars"
+ mkdir -p "$outputDir"
+ updateCommand=$(printf \
+ '${updateGrammar { owner = "tree-sitter"; }} "$1" > "%s/$1.json"' \
+ "$outputDir")
+ printf '%s' "$grammarNames" \
+ | ${xe}/bin/xe printf "tree-sitter-%s\n" {} \
+ | ${xe}/bin/xe -j2 -s "$updateCommand"
+ ( echo "{"
+ printf '%s' "$grammarNames" \
+ | ${xe}/bin/xe -s 'printf " %s = (builtins.fromJSON (builtins.readFile ./tree-sitter-%s.json));\n" "$1" "$1"'
+ echo "}" ) \
+ > "$outputDir/default.nix"
+ '';
+
+in update-all-grammars
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pax-rs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pax-rs/default.nix
new file mode 100644
index 000000000000..6aa38104bcac
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pax-rs/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, fetchurl, rustPlatform, runCommand } :
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "pax-rs";
+ version = "0.4.0";
+
+ meta = with stdenv.lib; {
+ description = "The fastest JavaScript bundler in the galaxy";
+ longDescription = ''
+ The fastest JavaScript bundler in the galaxy. Fully supports ECMAScript module syntax (import/export) in addition to CommonJS require(<string>).
+ '';
+ homepage = "https://github.com/nathan/pax";
+ license = licenses.mit;
+ maintainers = [ maintainers.klntsky ];
+ platforms = platforms.linux;
+ };
+
+ src =
+ let
+ source = fetchFromGitHub {
+ owner = "nathan";
+ repo = "pax";
+ rev = "pax-v${version}";
+ sha256 = "1l2xpgsms0bfc0i3l0hyw4dbp6d4qdxa9vxyp704p27vvn4ndhv2";
+ };
+
+ cargo-lock = fetchurl {
+ url = "https://gist.github.com/klntsky/c7863424d7df0c379782015f6bb3b399/raw/1cf7481e33984fd1510dc77ed677606d08fa8eb6/Cargo.lock";
+ sha256 = "0ff1b64b99cbca1cc2ceabcd2e4f7bc3411e3a2a9fbb9db2204d9240fe38ddeb";
+ };
+ in
+ runCommand "pax-rs-src" {} ''
+ cp -R ${source} $out
+ chmod +w $out
+ cp ${cargo-lock} $out/Cargo.lock
+ '';
+
+ cargoSha256 = "0wx5x7ll21bb6v34csk63kkvxdk3as720hdkaj0izdkpy0xf1knr";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pet/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pet/default.nix
new file mode 100644
index 000000000000..4ed16d417466
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pet/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "pet";
+ version = "0.3.6";
+
+ src = fetchFromGitHub {
+ owner = "knqyf263";
+ repo = "pet";
+ rev = "v${version}";
+ sha256 = "1na3az7vicjq1rxd3ybid47yrblsdazgli0dchkbwh8zchwhqj33";
+ };
+
+ vendorSha256 = "0pnd89iqdj3f719xf4iy5r04n51d0rrrf0qb2zjirpw7vh7g82i9";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "Simple command-line snippet manager, written in Go";
+ homepage = "https://github.com/knqyf263/pet";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pew/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pew/default.nix
new file mode 100644
index 000000000000..a7fabb783951
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pew/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, python3 }:
+
+with python3.pkgs;
+
+buildPythonApplication rec {
+ pname = "pew";
+ version = "1.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "04anak82p4v9w0lgfs55s7diywxil6amq8c8bhli143ca8l2fcdq";
+ };
+
+ propagatedBuildInputs = [ virtualenv virtualenv-clone setuptools ];
+
+ # no tests are packaged
+ checkPhase = ''
+ $out/bin/pew > /dev/null
+ '';
+
+ pythonImportsCheck = [ "pew" ];
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/berdario/pew";
+ description = "Tools to manage multiple virtualenvs written in pure python";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ berdario ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pgformatter/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pgformatter/default.nix
new file mode 100644
index 000000000000..1cd9f9ea17ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pgformatter/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, perlPackages, fetchFromGitHub, shortenPerlShebang }:
+
+perlPackages.buildPerlPackage rec {
+ pname = "pgformatter";
+ version = "4.4";
+
+ src = fetchFromGitHub {
+ owner = "darold";
+ repo = "pgFormatter";
+ rev = "v${version}";
+ sha256 = "1sqjw6q005lws7qhkd26jqyb1xqmpcklzw5hk8paxxi8mzyjn0jp";
+ };
+
+ outputs = [ "out" ];
+
+ makeMakerFlags = [ "INSTALLDIRS=vendor" ];
+
+ # Makefile.PL only accepts DESTDIR and INSTALLDIRS, but we need to set more to make this work for NixOS.
+ patchPhase = ''
+ substituteInPlace pg_format \
+ --replace "#!/usr/bin/env perl" "#!/usr/bin/perl"
+ substituteInPlace Makefile.PL \
+ --replace "'DESTDIR' => \$DESTDIR," "'DESTDIR' => '$out/'," \
+ --replace "'INSTALLDIRS' => \$INSTALLDIRS," "'INSTALLDIRS' => \$INSTALLDIRS, 'INSTALLVENDORLIB' => 'bin/lib', 'INSTALLVENDORBIN' => 'bin', 'INSTALLVENDORSCRIPT' => 'bin', 'INSTALLVENDORMAN1DIR' => 'share/man/man1', 'INSTALLVENDORMAN3DIR' => 'share/man/man3',"
+ '';
+
+ nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+ postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+ shortenPerlShebang $out/bin/pg_format
+ '';
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A PostgreSQL SQL syntax beautifier that can work as a console program or as a CGI";
+ homepage = "https://github.com/darold/pgFormatter";
+ changelog = "https://github.com/darold/pgFormatter/releases/tag/v${version}";
+ maintainers = [ maintainers.marsam ];
+ license = [ licenses.postgresql licenses.artistic2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pgloader/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pgloader/default.nix
new file mode 100644
index 000000000000..94ba95b2d92f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pgloader/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, makeWrapper, sbcl, sqlite, freetds, libzip, curl, git, cacert, openssl }:
+stdenv.mkDerivation rec {
+ pname = "pgloader";
+ version = "3.6.2";
+
+ src = fetchurl {
+ url = "https://github.com/dimitri/pgloader/releases/download/v3.6.2/pgloader-bundle-3.6.2.tgz";
+ sha256 = "1jqnw6pw11kwyy8zm2g7g85r8197fy0q4l70yybw9wr87wnqqnz3";
+ };
+
+ nativeBuildInputs = [ git makeWrapper ];
+ buildInputs = [ sbcl cacert sqlite freetds libzip curl openssl ];
+
+ LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ sqlite libzip curl git openssl freetds ];
+
+ buildPhase = ''
+ export PATH=$PATH:$out/bin
+ export HOME=$TMPDIR
+
+ make pgloader
+ '';
+
+ dontStrip = true;
+ enableParallelBuilding = false;
+
+ installPhase = ''
+ install -Dm755 bin/pgloader "$out/bin/pgloader"
+ wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://pgloader.io/";
+ description = "pgloader loads data into PostgreSQL and allows you to implement Continuous Migration from your current database to PostgreSQL";
+ maintainers = with maintainers; [ mguentner ];
+ license = licenses.postgresql;
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs/default.nix
new file mode 100644
index 000000000000..f042aa35b6f6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs/default.nix
@@ -0,0 +1,70 @@
+{ stdenv, lib, fetchurl, freetype, fontconfig, openssl, unzip }:
+
+let
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+in
+
+stdenv.mkDerivation rec {
+ name = "phantomjs-1.9.8";
+
+ # I chose to use the binary build for now.
+ # The source version is quite nasty to compile
+ # because it has bundled a lot of external libraries (like QT and Webkit)
+ # and no easy/nice way to use the system versions of these
+
+ src = if stdenv.hostPlatform.system == "i686-linux" then
+ fetchurl {
+ url = "https://bitbucket.org/ariya/phantomjs/downloads/${name}-linux-i686.tar.bz2";
+ sha256 = "11fzmssz9pqf3arh4f36w06sl2nyz8l9h8iyxyd7w5aqnq5la0j1";
+ }
+ else
+ if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://bitbucket.org/ariya/phantomjs/downloads/${name}-linux-x86_64.tar.bz2";
+ sha256 = "0fhnqxxsxhy125fmif1lwgnlhfx908spy7fx9mng4w72320n5nd1";
+ }
+ else # x86_64-darwin
+ fetchurl {
+ url = "https://bitbucket.org/ariya/phantomjs/downloads/${name}-macosx.zip";
+ sha256 = "0j0aq8dgzmb210xdrh0v3d4nblskl3zsckl8bzf1a603wcx085cg";
+ };
+
+ buildInputs = lib.optional stdenv.isDarwin unzip;
+
+ buildPhase = lib.optionalString (!stdenv.isDarwin) ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "${stdenv.lib.makeLibraryPath [ freetype fontconfig stdenv.cc.cc stdenv.cc.cc openssl ]}" \
+ bin/phantomjs
+ '';
+
+ dontPatchELF = true;
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out/share/doc/phantomjs
+ cp -a bin $out
+ cp -a ChangeLog examples LICENSE.BSD README.md third-party.txt $out/share/doc/phantomjs
+ '';
+
+ meta = {
+ description = "Headless WebKit with JavaScript API";
+ longDescription = ''
+ PhantomJS is a headless WebKit with JavaScript API.
+ It has fast and native support for various web standards:
+ DOM handling, CSS selector, JSON, Canvas, and SVG.
+
+ PhantomJS is an optimal solution for:
+ - Headless Website Testing
+ - Screen Capture
+ - Page Automation
+ - Network Monitoring
+ '';
+
+ homepage = "https://phantomjs.org/";
+ license = lib.licenses.bsd3;
+
+ maintainers = [ lib.maintainers.bluescreen303 ];
+ inherit platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/default.nix
new file mode 100644
index 000000000000..d565a70798ae
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/default.nix
@@ -0,0 +1,118 @@
+{ stdenv, fetchFromGitHub, fetchpatch
+, bison, flex, fontconfig, freetype, gperf, icu, openssl, libjpeg
+, libpng, perl, python, ruby, sqlite, qtwebkit, qmake, qtbase
+, darwin, writeScriptBin, cups, makeWrapper
+}:
+
+let
+ fakeClang = writeScriptBin "clang" ''
+ #!${stdenv.shell}
+ if [[ "$@" == *.c ]]; then
+ exec "${stdenv.cc}/bin/clang" "$@"
+ else
+ exec "${stdenv.cc}/bin/clang++" "$@"
+ fi
+ '';
+
+in stdenv.mkDerivation rec {
+ pname = "phantomjs";
+ version = "2.1.1";
+
+ src = fetchFromGitHub {
+ owner = "ariya";
+ repo = "phantomjs";
+ rev = version;
+ sha256 = "1zsbpk1sgh9a16f1a5nx3qvk77ibjn812wqkxqck8n6fia85m5iq";
+ };
+
+ nativeBuildInputs = [ qmake ];
+ buildInputs = [
+ bison flex fontconfig freetype gperf icu openssl
+ libjpeg libpng perl python ruby sqlite qtwebkit qtbase
+ makeWrapper
+ ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+ AGL ApplicationServices AppKit Cocoa OpenGL
+ darwin.libobjc fakeClang cups
+ ]);
+
+ patches = [
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-hardening.patch";
+ sha256 = "1qs1r76w90qgpw742i7lf0y3b7m9zh5wxcbrhrak6mq1kqaphqb5";
+ })
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt-components.patch";
+ sha256 = "1fw2q59aqcks3abvwkqg9903yif6aivdsznc0h6frhhjvpp19vsb";
+ })
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-evaluateJavaScript.patch";
+ sha256 = "1avig9cfny8kv3s4mf3mdzvf3xlzgyh351yzwc4bkpnjvzv4fmq6";
+ })
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-no-websecurity.patch";
+ sha256 = "1nykqpxa7lcf9iarz5lywgg3v3b1h19iwvjdg4kgq0ai6idhcab8";
+ })
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/build-qt55-print.patch";
+ sha256 = "1fydmdjxnplglpbd3ypaih5l237jkxjirpdhzz92mcpy29yla6jw";
+ })
+ (fetchpatch {
+ url = "https://salsa.debian.org/debian/phantomjs/raw/0b20f0dd/debian/patches/unlock-qt.patch";
+ sha256 = "13bwz4iw17d6hq5pwkbpcckqyw7fhc6648lvs26m39pp31zwyp03";
+ })
+ ./system-qtbase.patch
+ ];
+
+ postPatch = ''
+ patchShebangs .
+ substituteInPlace src/phantomjs.pro \
+ --replace "QT_MINOR_VERSION, 5" "QT_MINOR_VERSION, 9"
+ '';
+
+ # Avoids error in webpage.cpp:80:89:
+ # invalid suffix on literal; C++11 requires a space between litend identifier
+ NIX_CFLAGS_COMPILE = "-Wno-reserved-user-defined-literal";
+
+ __impureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libicucore.dylib";
+
+ enableParallelBuilding = true;
+
+ installPhase = ''
+ mkdir -p $out/share/doc/phantomjs
+ cp -a bin $out
+ cp -a ChangeLog examples LICENSE.BSD README.md third-party.txt $out/share/doc/phantomjs
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ install_name_tool -change \
+ ${darwin.CF}/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \
+ /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation \
+ -change \
+ ${darwin.configd}/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration \
+ /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration \
+ $out/bin/phantomjs
+ '' + ''
+ wrapProgram $out/bin/phantomjs \
+ --set QT_QPA_PLATFORM offscreen \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ qtbase ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Headless WebKit with JavaScript API";
+ longDescription = ''
+ PhantomJS2 is a headless WebKit with JavaScript API.
+ It has fast and native support for various web standards:
+ DOM handling, CSS selector, JSON, Canvas, and SVG.
+
+ PhantomJS is an optimal solution for:
+ - Headless Website Testing
+ - Screen Capture
+ - Page Automation
+ - Network Monitoring
+ '';
+
+ homepage = "https://phantomjs.org/";
+ license = licenses.bsd3;
+
+ maintainers = [ maintainers.aflatter ];
+ platforms = platforms.darwin ++ platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/system-qtbase.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/system-qtbase.patch
new file mode 100644
index 000000000000..743372b0f0bc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/phantomjs2/system-qtbase.patch
@@ -0,0 +1,13 @@
+--- a/build.py
++++ b/build.py
+@@ -80,9 +80,9 @@
+ def qmakePath():
+ exe = "qmake"
+ if platform.system() == "Windows":
+ exe += ".exe"
+- return os.path.abspath("src/qt/qtbase/bin/" + exe)
++ return os.path.abspath("@qtbase@" + exe)
+
+ # returns paths for 3rd party libraries (Windows only)
+ def findThirdPartyDeps():
+ include_dirs = []
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/default.nix
new file mode 100644
index 000000000000..ae5435330593
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+buildGoPackage {
+ pname = "pigeon";
+ version = "20190810-f3db42a662";
+
+ goPackagePath = "github.com/mna/pigeon";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "mna";
+ repo = "pigeon";
+ rev = "f3db42a662eded7550fc7cd11605d05311dfa30f";
+ sha256 = "1n0zqidwbqqfslrirpbqw14ylgiry6ggcp9ll4h8rf1chqwk6dhv";
+ };
+
+ meta = {
+ homepage = "https://github.com/mna/pigeon";
+ description = "A PEG parser generator for Go";
+ maintainers = with lib.maintainers; [ zimbatm ];
+ license = with lib.licenses; [ bsd3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/deps.nix
new file mode 100644
index 000000000000..d836dc43c7cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pigeon/deps.nix
@@ -0,0 +1,66 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ 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 = "3b0461eec859";
+ sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "112230192c58";
+ sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+ };
+ }
+ {
+ 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 = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "b29f5f60c37a";
+ sha256 = "118rvb59hc1fykbmif4008rbxw1p0dblc8dxkq96yaapd6p0vbpn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/xerrors";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/xerrors";
+ rev = "a985d3407aa7";
+ sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pipenv/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pipenv/default.nix
new file mode 100644
index 000000000000..3a6ea879e58b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pipenv/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, python3
+}:
+
+with python3.pkgs;
+
+let
+
+ runtimeDeps = ps: with ps; [
+ certifi
+ setuptools
+ pip
+ virtualenv
+ virtualenv-clone
+ ];
+
+ pythonEnv = python3.withPackages runtimeDeps;
+
+in buildPythonApplication rec {
+ pname = "pipenv";
+ version = "2020.8.13";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "eff0e10eadb330f612edfa5051d3d8e775e9e0e918c3c50361da703bd0daa035";
+ };
+
+ LC_ALL = "en_US.UTF-8";
+
+ postPatch = ''
+ # pipenv invokes python in a subprocess to create a virtualenv
+ # and to call setup.py.
+ # It would use sys.executable, which in our case points to a python that
+ # does not have the required dependencies.
+ substituteInPlace pipenv/core.py \
+ --replace "sys.executable" "'${pythonEnv.interpreter}'"
+ '';
+
+ propagatedBuildInputs = runtimeDeps python3.pkgs;
+
+ doCheck = true;
+ checkPhase = ''
+ export HOME=$(mktemp -d)
+ cp -r --no-preserve=mode ${wheel.src} $HOME/wheel-src
+ $out/bin/pipenv install $HOME/wheel-src
+ '';
+
+ meta = with lib; {
+ description = "Python Development Workflow for Humans";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ berdario ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/README.md b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/README.md
new file mode 100644
index 000000000000..ac4861534f58
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/README.md
@@ -0,0 +1,6 @@
+Dont change these files here, they are maintained at https://github.com/nix-community/poetry2nix
+
+The update procedure is as-follows:
+1. Send your change to the upstream poetry2nix repository
+2. Get it approved with tests passing
+3. Run the update script in pkgs/development/tools/poetry2nix
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/bin/poetry2nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/bin/poetry2nix
new file mode 100755
index 000000000000..355cebfd50c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/bin/poetry2nix
@@ -0,0 +1,103 @@
+#!/usr/bin/env python
+from concurrent.futures import ThreadPoolExecutor
+import subprocess
+import textwrap
+import argparse
+import toml
+import json
+import sys
+
+
+argparser = argparse.ArgumentParser(description="Poetry2nix CLI")
+
+subparsers = argparser.add_subparsers(dest="subcommand")
+subparsers.required = True
+
+parser_lock = subparsers.add_parser("lock", help="Generate overrides for git hashes",)
+parser_lock.add_argument(
+ "--lock", default="poetry.lock", help="Path to input poetry.lock",
+)
+parser_lock.add_argument(
+ "--out", default="poetry-git-overlay.nix", help="Output file",
+)
+
+
+def fetch_git(pkg):
+ return (
+ pkg["name"],
+ subprocess.run(
+ [
+ "nix-prefetch-git",
+ "--fetch-submodules",
+ "--url",
+ pkg["source"]["url"],
+ "--rev",
+ pkg["source"]["reference"],
+ ],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE,
+ ),
+ )
+
+
+def indent(expr, spaces=2):
+ i = " " * spaces
+ return "\n".join([(i if l != "" else "") + l for l in expr.split("\n")])
+
+
+if __name__ == "__main__":
+ args = argparser.parse_args()
+
+ with open(args.lock) as lockf:
+ lock = toml.load(lockf)
+
+ pkgs = []
+ for pkg in lock["package"]:
+ if "source" in pkg:
+ pkgs.append(pkg)
+
+ with ThreadPoolExecutor() as e:
+ futures = []
+
+ for pkg in pkgs:
+ futures.append(e.submit(fetch_git, pkg))
+
+ lines = [
+ "{ pkgs }:",
+ "self: super: {",
+ ]
+
+ for f in futures:
+ drv_name, p = f.result()
+ if p.returncode != 0:
+ sys.stderr.buffer.write(p.stderr)
+ sys.stderr.buffer.flush()
+ exit(p.returncode)
+
+ meta = json.loads(p.stdout.decode())
+ lines.append(
+ indent(
+ textwrap.dedent(
+ """
+ %s = super.%s.overridePythonAttrs (
+ _: {
+ src = pkgs.fetchgit {
+ url = "%s";
+ rev = "%s";
+ sha256 = "%s";
+ };
+ }
+ );"""
+ % (drv_name, drv_name, meta["url"], meta["rev"], meta["sha256"])
+ )
+ )
+ )
+
+ lines.extend(["", "}", ""])
+
+ expr = "\n".join(lines)
+
+ with open(args.out, "w") as fout:
+ fout.write(expr)
+
+ print(f"Wrote {args.out}")
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/cli.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/cli.nix
new file mode 100644
index 000000000000..b96316e59d83
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/cli.nix
@@ -0,0 +1,49 @@
+{ pkgs ? import <nixpkgs> { }
+, lib ? pkgs.lib
+, version
+}:
+let
+ inherit (pkgs) python3;
+in
+pkgs.stdenv.mkDerivation {
+ pname = "poetry2nix";
+ inherit version;
+
+ buildInputs = [
+ (python3.withPackages (ps: [ ps.toml ]))
+ ];
+
+ nativeBuildInputs = [
+ pkgs.makeWrapper
+ ];
+
+ src = ./bin;
+
+ dontConfigure = true;
+
+ buildPhase = ''
+ runHook preBuild
+ patchShebangs poetry2nix
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ mkdir -p $out/bin
+ mv poetry2nix $out/bin
+
+ wrapProgram $out/bin/poetry2nix --prefix PATH ":" ${lib.makeBinPath [
+ pkgs.nix-prefetch-git
+ ]}
+
+ runHook postInstall
+ '';
+
+ meta = {
+ homepage = "https://github.com/nix-community/poetry2nix";
+ description = "CLI to supplement sha256 hashes for git dependencies";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.adisbladis ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
new file mode 100644
index 000000000000..e47dbc99f2a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -0,0 +1,383 @@
+{ pkgs ? import <nixpkgs> { }
+, lib ? pkgs.lib
+, poetry ? null
+, poetryLib ? import ./lib.nix { inherit lib pkgs; }
+}:
+let
+ inherit (poetryLib) isCompatible readTOML moduleName;
+
+ /* The default list of poetry2nix override overlays */
+ mkEvalPep508 = import ./pep508.nix {
+ inherit lib poetryLib;
+ stdenv = pkgs.stdenv;
+ };
+ getFunctorFn = fn: if builtins.typeOf fn == "set" then fn.__functor else fn;
+
+ # Map SPDX identifiers to license names
+ spdxLicenses = lib.listToAttrs (lib.filter (pair: pair.name != null) (builtins.map (v: { name = if lib.hasAttr "spdxId" v then v.spdxId else null; value = v; }) (lib.attrValues lib.licenses)));
+ # Get license by id falling back to input string
+ getLicenseBySpdxId = spdxId: spdxLicenses.${spdxId} or spdxId;
+
+ # Experimental withPlugins functionality
+ toPluginAble = (import ./plugins.nix { inherit pkgs lib; }).toPluginAble;
+
+ mkInputAttrs =
+ { py
+ , pyProject
+ , attrs
+ , includeBuildSystem ? true
+ }:
+ let
+ getInputs = attr: attrs.${attr} or [ ];
+
+ # Get dependencies and filter out depending on interpreter version
+ getDeps = depAttr:
+ let
+ compat = isCompatible (poetryLib.getPythonVersion py);
+ deps = pyProject.tool.poetry.${depAttr} or { };
+ depAttrs = builtins.map (d: lib.toLower d) (builtins.attrNames deps);
+ in
+ (
+ builtins.map
+ (
+ dep:
+ let
+ pkg = py.pkgs."${moduleName dep}";
+ constraints = deps.${dep}.python or "";
+ isCompat = compat constraints;
+ in
+ if isCompat then pkg else null
+ )
+ depAttrs
+ );
+
+ buildSystemPkgs = poetryLib.getBuildSystemPkgs {
+ inherit pyProject;
+ pythonPackages = py.pkgs;
+ };
+
+ mkInput = attr: extraInputs: getInputs attr ++ extraInputs;
+
+ in
+ {
+ buildInputs = mkInput "buildInputs" (if includeBuildSystem then buildSystemPkgs else [ ]);
+ propagatedBuildInputs = mkInput "propagatedBuildInputs" (getDeps "dependencies") ++ ([ py.pkgs.setuptools ]);
+ nativeBuildInputs = mkInput "nativeBuildInputs" [ ];
+ checkInputs = mkInput "checkInputs" (getDeps "dev-dependencies");
+ };
+
+
+in
+lib.makeScope pkgs.newScope (self: {
+
+ # Poetry2nix version
+ version = "1.13.0";
+
+ /*
+ Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
+ */
+ mkPoetryPackages =
+ { projectDir ? null
+ , pyproject ? projectDir + "/pyproject.toml"
+ , poetrylock ? projectDir + "/poetry.lock"
+ , overrides ? self.defaultPoetryOverrides
+ , python ? pkgs.python3
+ , pwd ? projectDir
+ , preferWheels ? false
+ , __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping
+ }@attrs:
+ let
+ poetryPkg = poetry.override { inherit python; };
+ pyProject = readTOML pyproject;
+ poetryLock = readTOML poetrylock;
+ lockFiles =
+ let
+ lockfiles = lib.getAttrFromPath [ "metadata" "files" ] poetryLock;
+ in
+ lib.listToAttrs (lib.mapAttrsToList (n: v: { name = moduleName n; value = v; }) lockfiles);
+ specialAttrs = [
+ "overrides"
+ "poetrylock"
+ "projectDir"
+ "pwd"
+ "preferWheels"
+ ];
+ passedAttrs = builtins.removeAttrs attrs specialAttrs;
+ evalPep508 = mkEvalPep508 python;
+
+ # Filter packages by their PEP508 markers & pyproject interpreter version
+ partitions =
+ let
+ supportsPythonVersion = pkgMeta: if pkgMeta ? marker then (evalPep508 pkgMeta.marker) else true && isCompatible (poetryLib.getPythonVersion python) pkgMeta.python-versions;
+ in
+ lib.partition supportsPythonVersion poetryLock.package;
+ compatible = partitions.right;
+ incompatible = partitions.wrong;
+
+ # Create an overriden version of pythonPackages
+ #
+ # We need to avoid mixing multiple versions of pythonPackages in the same
+ # closure as python can only ever have one version of a dependency
+ baseOverlay = self: super:
+ let
+ getDep = depName: self.${depName};
+ lockPkgs = builtins.listToAttrs (
+ builtins.map
+ (
+ pkgMeta: rec {
+ name = moduleName pkgMeta.name;
+ value = self.mkPoetryDep (
+ pkgMeta // {
+ inherit pwd preferWheels;
+ inherit __isBootstrap;
+ source = pkgMeta.source or null;
+ files = lockFiles.${name};
+ pythonPackages = self;
+ sourceSpec = pyProject.tool.poetry.dependencies.${name} or pyProject.tool.poetry.dev-dependencies.${name} or { };
+ }
+ );
+ }
+ )
+ (lib.reverseList compatible)
+ );
+ in
+ lockPkgs;
+ overlays = builtins.map
+ getFunctorFn
+ (
+ [
+ (
+ self: super:
+ let
+ hooks = self.callPackage ./hooks { };
+ in
+ {
+ mkPoetryDep = self.callPackage ./mk-poetry-dep.nix {
+ inherit pkgs lib python poetryLib evalPep508;
+ };
+
+ # Use poetry-core from the poetry build (pep517/518 build-system)
+ poetry-core = if __isBootstrap then null else poetryPkg.passthru.python.pkgs.poetry-core;
+ poetry = if __isBootstrap then null else poetryPkg;
+
+ # The canonical name is setuptools-scm
+ setuptools-scm = super.setuptools_scm;
+
+ __toPluginAble = toPluginAble self;
+
+ inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook wheelUnpackHook;
+ }
+ )
+ # Null out any filtered packages, we don't want python.pkgs from nixpkgs
+ (self: super: builtins.listToAttrs (builtins.map (x: { name = moduleName x.name; value = null; }) incompatible))
+ # Create poetry2nix layer
+ baseOverlay
+ ] ++ # User provided overrides
+ (if builtins.typeOf overrides == "list" then overrides else [ overrides ])
+ );
+ packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) overlays;
+ py = python.override { inherit packageOverrides; self = py; };
+
+ inputAttrs = mkInputAttrs { inherit py pyProject; attrs = { }; includeBuildSystem = false; };
+
+ in
+ {
+ python = py;
+ poetryPackages = builtins.foldl' (acc: v: acc ++ v) [ ] (lib.attrValues inputAttrs);
+ poetryLock = poetryLock;
+ inherit pyProject;
+ };
+
+ /* Returns a package with a python interpreter and all packages specified in the poetry.lock lock file.
+ In editablePackageSources you can pass a mapping from package name to source directory to have
+ those packages available in the resulting environment, whose source changes are immediately available.
+
+ Example:
+ poetry2nix.mkPoetryEnv { poetrylock = ./poetry.lock; python = python3; }
+ */
+ mkPoetryEnv =
+ { projectDir ? null
+ , pyproject ? projectDir + "/pyproject.toml"
+ , poetrylock ? projectDir + "/poetry.lock"
+ , overrides ? self.defaultPoetryOverrides
+ , pwd ? projectDir
+ , python ? pkgs.python3
+ , preferWheels ? false
+ # Example: { my-app = ./src; }
+ , editablePackageSources ? { }
+ }:
+ let
+ py = self.mkPoetryPackages (
+ {
+ inherit pyproject poetrylock overrides python pwd preferWheels;
+ }
+ );
+
+ inherit (py) pyProject;
+
+ # Add executables from tool.poetry.scripts
+ scripts = pyProject.tool.poetry.scripts or { };
+ hasScripts = scripts != { };
+ scriptsPackage = import ./shell-scripts.nix {
+ inherit scripts lib;
+ inherit (py) python;
+ };
+
+ hasEditable = editablePackageSources != { };
+ editablePackage = import ./editable.nix {
+ inherit pkgs lib poetryLib editablePackageSources;
+ inherit (py) pyProject python;
+ };
+
+ in
+ py.python.withPackages (
+ _: py.poetryPackages
+ ++ lib.optional hasEditable editablePackage
+ ++ lib.optional hasScripts scriptsPackage
+ );
+
+ /* Creates a Python application from pyproject.toml and poetry.lock
+
+ The result also contains a .dependencyEnv attribute which is a python
+ environment of all dependencies and this apps modules. This is useful if
+ you rely on dependencies to invoke your modules for deployment: e.g. this
+ allows `gunicorn my-module:app`.
+ */
+ mkPoetryApplication =
+ { projectDir ? null
+ , src ? self.cleanPythonSources { src = projectDir; }
+ , pyproject ? projectDir + "/pyproject.toml"
+ , poetrylock ? projectDir + "/poetry.lock"
+ , overrides ? self.defaultPoetryOverrides
+ , meta ? { }
+ , python ? pkgs.python3
+ , pwd ? projectDir
+ , preferWheels ? false
+ , __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping
+ , ...
+ }@attrs:
+ let
+ poetryPython = self.mkPoetryPackages {
+ inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap;
+ };
+ py = poetryPython.python;
+
+ inherit (poetryPython) pyProject;
+ specialAttrs = [
+ "overrides"
+ "poetrylock"
+ "projectDir"
+ "pwd"
+ "pyproject"
+ "preferWheels"
+ ];
+ passedAttrs = builtins.removeAttrs attrs specialAttrs;
+
+ inputAttrs = mkInputAttrs { inherit py pyProject attrs; };
+
+ app = py.pkgs.buildPythonPackage (
+ passedAttrs // inputAttrs // {
+ nativeBuildInputs = inputAttrs.nativeBuildInputs ++ [ py.pkgs.removePathDependenciesHook ];
+ } // {
+ pname = moduleName pyProject.tool.poetry.name;
+ version = pyProject.tool.poetry.version;
+
+ inherit src;
+
+ format = "pyproject";
+ # Like buildPythonApplication, but without the toPythonModule part
+ # Meaning this ends up looking like an application but it also
+ # provides python modules
+ namePrefix = "";
+
+ passthru = {
+ python = py;
+ dependencyEnv = (
+ lib.makeOverridable ({ app, ... }@attrs:
+ let
+ args = builtins.removeAttrs attrs [ "app" ] // {
+ extraLibs = [ app ];
+ };
+ in
+ py.buildEnv.override args)
+ ) { inherit app; };
+ };
+
+ meta = lib.optionalAttrs (lib.hasAttr "description" pyProject.tool.poetry)
+ {
+ inherit (pyProject.tool.poetry) description;
+ } // lib.optionalAttrs (lib.hasAttr "homepage" pyProject.tool.poetry) {
+ inherit (pyProject.tool.poetry) homepage;
+ } // {
+ inherit (py.meta) platforms;
+ license = getLicenseBySpdxId (pyProject.tool.poetry.license or "unknown");
+ } // meta;
+
+ }
+ );
+ in
+ app;
+
+ /* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies */
+ cli = import ./cli.nix {
+ inherit pkgs lib;
+ inherit (self) version;
+ };
+
+ # inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages;
+
+ inherit (poetryLib) cleanPythonSources;
+
+
+ /*
+ Create a new default set of overrides with the same structure as the built-in ones
+ */
+ mkDefaultPoetryOverrides = defaults: {
+ __functor = defaults;
+
+ extend = overlay:
+ let
+ composed = lib.foldr lib.composeExtensions overlay [ defaults ];
+ in
+ self.mkDefaultPoetryOverrides composed;
+
+ overrideOverlay = fn:
+ let
+ overlay = self: super:
+ let
+ defaultSet = defaults self super;
+ customSet = fn self super;
+ in
+ defaultSet // customSet;
+ in
+ self.mkDefaultPoetryOverrides overlay;
+ };
+
+ /*
+ The default list of poetry2nix override overlays
+
+ Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+ */
+ defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; });
+
+ /*
+ Convenience functions for specifying overlays with or without the poerty2nix default overrides
+ */
+ overrides = {
+ /*
+ Returns the specified overlay in a list
+ */
+ withoutDefaults = overlay: [
+ overlay
+ ];
+
+ /*
+ Returns the specified overlay and returns a list
+ combining it with poetry2nix default overrides
+ */
+ withDefaults = overlay: [
+ self.defaultPoetryOverrides
+ overlay
+ ];
+ };
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
new file mode 100644
index 000000000000..12b659d4c348
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/editable.nix
@@ -0,0 +1,55 @@
+{ pkgs
+, lib
+, poetryLib
+, pyProject
+, python
+, editablePackageSources
+}:
+let
+ name = poetryLib.moduleName pyProject.tool.poetry.name;
+
+ # Just enough standard PKG-INFO fields for an editable installation
+ pkgInfoFields = {
+ Metadata-Version = "2.1";
+ Name = name;
+ # While the pyproject.toml could contain arbitrary version strings, for
+ # simplicity we just use the same one for PKG-INFO, even though that
+ # should follow follow PEP 440: https://www.python.org/dev/peps/pep-0345/#version
+ # This is how poetry transforms it: https://github.com/python-poetry/poetry/blob/6cd3645d889f47c10425961661b8193b23f0ed79/poetry/version/version.py
+ Version = pyProject.tool.poetry.version;
+ Summary = pyProject.tool.poetry.description;
+ };
+
+ pkgInfoFile = builtins.toFile "${name}-PKG-INFO"
+ (lib.concatStringsSep "\n" (lib.mapAttrsToList (key: value: "${key}: ${value}") pkgInfoFields));
+
+ entryPointsFile = builtins.toFile "${name}-entry_points.txt"
+ (lib.generators.toINI { } pyProject.tool.poetry.plugins);
+
+ # A python package that contains simple .egg-info and .pth files for an editable installation
+ editablePackage = python.pkgs.toPythonModule (pkgs.runCommandNoCC "${name}-editable"
+ { } ''
+ mkdir -p "$out/${python.sitePackages}"
+ cd "$out/${python.sitePackages}"
+
+ # See https://docs.python.org/3.8/library/site.html for info on such .pth files
+ # These add another site package path for each line
+ touch poetry2nix-editable.pth
+ ${lib.concatMapStringsSep "\n"
+ (src: ''
+ echo "${toString src}" >> poetry2nix-editable.pth
+ '')
+ (lib.attrValues editablePackageSources)}
+
+ # Create a very simple egg so pkg_resources can find this package
+ # See https://setuptools.readthedocs.io/en/latest/formats.html for more info on the egg format
+ mkdir "${name}.egg-info"
+ cd "${name}.egg-info"
+ ln -s ${pkgInfoFile} PKG-INFO
+ ${lib.optionalString (pyProject.tool.poetry ? plugins) ''
+ ln -s ${entryPointsFile} entry_points.txt
+ ''}
+ ''
+ );
+in
+editablePackage
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/extensions.json b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/extensions.json
new file mode 100644
index 000000000000..33052efe2968
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/extensions.json
@@ -0,0 +1,15 @@
+[
+ "egg",
+ "tar",
+ "tar.bz2",
+ "tar.gz",
+ "tar.lz",
+ "tar.lzma",
+ "tar.xz",
+ "tbz",
+ "tgz",
+ "tlz",
+ "txz",
+ "whl",
+ "zip"
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh
new file mode 100644
index 000000000000..97f54b23416d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/fetch-wheel.sh
@@ -0,0 +1,24 @@
+source $stdenv/setup
+set -euo pipefail
+
+curl="curl \
+ --location \
+ --max-redirs 20 \
+ --retry 2 \
+ --disable-epsv \
+ --cookie-jar cookies \
+ --insecure \
+ --speed-time 5 \
+ -# \
+ --fail \
+ $curlOpts \
+ $NIX_CURL_FLAGS"
+
+echo "Trying to fetch wheel with predicted URL: $predictedURL"
+
+$curl $predictedURL --output $out && exit 0
+
+echo "Predicted URL '$predictedURL' failed, querying pypi.org"
+$curl "https://pypi.org/pypi/$pname/json" | jq -r ".releases.\"$version\"[] | select(.filename == \"$file\") | .url" > url
+url=$(cat url)
+$curl -k $url --output $out
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
new file mode 100644
index 000000000000..6d60df284739
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -0,0 +1,68 @@
+{ python
+, callPackage
+, makeSetupHook
+, yj
+, wheel
+, pip
+}:
+let
+ pythonInterpreter = python.pythonForBuild.interpreter;
+ pythonSitePackages = python.sitePackages;
+in
+{
+
+ removePathDependenciesHook = callPackage
+ (
+ {}:
+ makeSetupHook
+ {
+ name = "remove-path-dependencies.sh";
+ deps = [ ];
+ substitutions = {
+ inherit pythonInterpreter;
+ yj = "${yj}/bin/yj";
+ pyprojectPatchScript = "${./pyproject-without-path.py}";
+ };
+ } ./remove-path-dependencies.sh
+ )
+ { };
+
+ pipBuildHook = callPackage
+ (
+ { pip, wheel }:
+ makeSetupHook
+ {
+ name = "pip-build-hook.sh";
+ deps = [ pip wheel ];
+ substitutions = {
+ inherit pythonInterpreter pythonSitePackages;
+ };
+ } ./pip-build-hook.sh
+ )
+ { };
+
+ poetry2nixFixupHook = callPackage
+ (
+ {}:
+ makeSetupHook
+ {
+ name = "fixup-hook.sh";
+ deps = [ ];
+ } ./fixup-hook.sh
+ )
+ { };
+
+ # When the "wheel" package itself is a wheel the nixpkgs hook (which pulls in "wheel") leads to infinite recursion
+ # It doesn't _really_ depend on wheel though, it just copies the wheel.
+ wheelUnpackHook = callPackage
+ ({}:
+ makeSetupHook
+ {
+ name = "wheel-unpack-hook.sh";
+ deps = [ ];
+ } ./wheel-unpack-hook.sh
+ )
+ { };
+
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh
new file mode 100644
index 000000000000..fc539e4298c6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/fixup-hook.sh
@@ -0,0 +1,8 @@
+poetry2nix-fixup-hook() {
+ # Including tests in the output is a common mistake
+ if [ -z "${dontFixupTests-}" ]; then
+ rm -rf $out/lib/python3.7/site-packages/tests
+ fi
+}
+
+postFixupHooks+=(poetry2nix-fixup-hook)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh
new file mode 100644
index 000000000000..fa7b698fb510
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pip-build-hook.sh
@@ -0,0 +1,50 @@
+# Setup hook to use for pip projects
+echo "Sourcing pip-build-hook"
+
+pipBuildPhase() {
+ echo "Executing pipBuildPhase"
+ runHook preBuild
+
+ # Prefer using setup.py to avoid build-system dependencies if we have a setup.py
+ if [ -z "${dontPreferSetupPy-}" ]; then
+ if test -e setup.py && test -e pyproject.toml; then
+ echo "Removing pyproject.toml..."
+ rm -f pyproject.toml
+ fi
+ fi
+
+ mkdir -p dist
+ echo "Creating a wheel..."
+ @pythonInterpreter@ -m pip wheel --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist .
+ echo "Finished creating a wheel..."
+
+ runHook postBuild
+ echo "Finished executing pipBuildPhase"
+}
+
+pipShellHook() {
+ echo "Executing pipShellHook"
+ runHook preShellHook
+
+ # Long-term setup.py should be dropped.
+ if [ -e pyproject.toml ]; then
+ tmp_path=$(mktemp -d)
+ export PATH="$tmp_path/bin:$PATH"
+ export PYTHONPATH="$tmp_path/@pythonSitePackages@:$PYTHONPATH"
+ mkdir -p "$tmp_path/@pythonSitePackages@"
+ @pythonInterpreter@ -m pip install -e . --prefix "$tmp_path" >&2
+ fi
+
+ runHook postShellHook
+ echo "Finished executing pipShellHook"
+}
+
+if [ -z "${dontUsePipBuild-}" ] && [ -z "${buildPhase-}" ]; then
+ echo "Using pipBuildPhase"
+ buildPhase=pipBuildPhase
+fi
+
+if [ -z "${shellHook-}" ]; then
+ echo "Using pipShellHook"
+ shellHook=pipShellHook
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py
new file mode 100644
index 000000000000..5d8fbcfe6b4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py
@@ -0,0 +1,25 @@
+#!/usr/bin/env python
+# Patch out path dependencies from a pyproject.json file
+
+import json
+import sys
+
+data = json.load(sys.stdin)
+
+
+def get_deep(o, path):
+ for p in path.split('.'):
+ o = o.get(p, {})
+ return o
+
+
+for dep in get_deep(data, 'tool.poetry.dependencies').values():
+ if isinstance(dep, dict):
+ try:
+ del dep['path'];
+ except KeyError:
+ pass
+ else:
+ dep['version'] = '*'
+
+json.dump(data, sys.stdout, indent=4)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh
new file mode 100644
index 000000000000..b22a05900a05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh
@@ -0,0 +1,12 @@
+remove-path-dependencies-hook() {
+ if ! test -f pyproject.toml; then
+ return
+ fi
+
+ # Tell poetry not to resolve the path dependencies. Any version is fine!
+ @yj@ -tj < pyproject.toml | @pythonInterpreter@ @pyprojectPatchScript@ > pyproject.json
+ @yj@ -jt < pyproject.json > pyproject.toml
+ rm pyproject.json
+}
+
+postPatchHooks+=(remove-path-dependencies-hook)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
new file mode 100644
index 000000000000..fca808a933ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
@@ -0,0 +1,18 @@
+# Setup hook to use in case a wheel is fetched
+echo "Sourcing wheel setup hook"
+
+wheelUnpackPhase(){
+ echo "Executing wheelUnpackPhase"
+ runHook preUnpack
+
+ mkdir -p dist
+ cp "$src" "dist/$(stripHash "$src")"
+
+# runHook postUnpack # Calls find...?
+ echo "Finished executing wheelUnpackPhase"
+}
+
+if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
+ echo "Using wheelUnpackPhase"
+ unpackPhase=wheelUnpackPhase
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
new file mode 100644
index 000000000000..6a0ee70f8635
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -0,0 +1,211 @@
+{ lib, pkgs }:
+let
+ inherit (import ./semver.nix { inherit lib ireplace; }) satisfiesSemver;
+ inherit (builtins) genList length;
+
+ # Replace a list entry at defined index with set value
+ ireplace = idx: value: list: (
+ genList (i: if i == idx then value else (builtins.elemAt list i)) (length list)
+ );
+
+ # Do some canonicalisation of module names
+ moduleName = name: lib.toLower (lib.replaceStrings [ "_" "." ] [ "-" "-" ] name);
+
+ # Get a full semver pythonVersion from a python derivation
+ getPythonVersion = python:
+ let
+ pyVer = lib.splitVersion python.pythonVersion ++ [ "0" ];
+ ver = lib.splitVersion python.version;
+ major = l: lib.elemAt l 0;
+ minor = l: lib.elemAt l 1;
+ joinVersion = v: lib.concatStringsSep "." v;
+ in
+ joinVersion (if major pyVer == major ver && minor pyVer == minor ver then ver else pyVer);
+
+ # Compare a semver expression with a version
+ isCompatible = version:
+ let
+ operators = {
+ "||" = cond1: cond2: cond1 || cond2;
+ "," = cond1: cond2: cond1 && cond2; # , means &&
+ "&&" = cond1: cond2: cond1 && cond2;
+ };
+ splitRe = "(" + (builtins.concatStringsSep "|" (builtins.map (x: lib.replaceStrings [ "|" ] [ "\\|" ] x) (lib.attrNames operators))) + ")";
+ in
+ expr:
+ let
+ tokens = builtins.filter (x: x != "") (builtins.split splitRe expr);
+ combine = acc: v:
+ let
+ isOperator = builtins.typeOf v == "list";
+ operator = if isOperator then (builtins.elemAt v 0) else acc.operator;
+ in
+ if isOperator then (acc // { inherit operator; }) else {
+ inherit operator;
+ state = operators."${operator}" acc.state (satisfiesSemver version v);
+ };
+ initial = { operator = "&&"; state = true; };
+ in
+ if expr == "" then true else (builtins.foldl' combine initial tokens).state;
+ fromTOML = builtins.fromTOML or
+ (
+ toml: builtins.fromJSON (
+ builtins.readFile (
+ pkgs.runCommand "from-toml"
+ {
+ inherit toml;
+ allowSubstitutes = false;
+ preferLocalBuild = true;
+ }
+ ''
+ ${pkgs.remarshal}/bin/remarshal \
+ -if toml \
+ -i <(echo "$toml") \
+ -of json \
+ -o $out
+ ''
+ )
+ )
+ );
+ readTOML = path: fromTOML (builtins.readFile path);
+
+ #
+ # Returns the appropriate manylinux dependencies and string representation for the file specified
+ #
+ getManyLinuxDeps = f:
+ let
+ ml = pkgs.pythonManylinuxPackages;
+ in
+ if lib.strings.hasInfix "manylinux1" f then { pkg = [ ml.manylinux1 ]; str = "1"; }
+ else if lib.strings.hasInfix "manylinux2010" f then { pkg = [ ml.manylinux2010 ]; str = "2010"; }
+ else if lib.strings.hasInfix "manylinux2014" f then { pkg = [ ml.manylinux2014 ]; str = "2014"; }
+ else { pkg = [ ]; str = null; };
+
+ # Predict URL from the PyPI index.
+ # Args:
+ # pname: package name
+ # file: filename including extension
+ # hash: SRI hash
+ # kind: Language implementation and version tag
+ predictURLFromPypi = lib.makeOverridable (
+ { pname, file, hash, kind }:
+ "https://files.pythonhosted.org/packages/${kind}/${lib.toLower (builtins.substring 0 1 file)}/${pname}/${file}"
+ );
+
+
+ # Fetch the wheels from the PyPI index.
+ # We need to first get the proper URL to the wheel.
+ # Args:
+ # pname: package name
+ # file: filename including extension
+ # hash: SRI hash
+ # kind: Language implementation and version tag
+ fetchWheelFromPypi = lib.makeOverridable (
+ { pname, file, hash, kind, curlOpts ? "" }:
+ let
+ version = builtins.elemAt (builtins.split "-" file) 2;
+ in
+ (pkgs.stdenvNoCC.mkDerivation {
+ name = file;
+ nativeBuildInputs = [
+ pkgs.curl
+ pkgs.jq
+ ];
+ isWheel = true;
+ system = "builtin";
+
+ preferLocalBuild = true;
+ impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
+ "NIX_CURL_FLAGS"
+ ];
+
+ predictedURL = predictURLFromPypi { inherit pname file hash kind; };
+ inherit pname file version curlOpts;
+
+ builder = ./fetch-wheel.sh;
+
+ outputHashMode = "flat";
+ outputHashAlgo = "sha256";
+ outputHash = hash;
+ })
+ );
+
+ # Fetch the artifacts from the PyPI index. Since we get all
+ # info we need from the lock file we don't use nixpkgs' fetchPyPi
+ # as it modifies casing while not providing anything we don't already
+ # have.
+ #
+ # Args:
+ # pname: package name
+ # file: filename including extension
+ # hash: SRI hash
+ # kind: Language implementation and version tag https://www.python.org/dev/peps/pep-0427/#file-name-convention
+ fetchFromPypi = lib.makeOverridable (
+ { pname, file, hash, kind }:
+ if lib.strings.hasSuffix "whl" file then fetchWheelFromPypi { inherit pname file hash kind; }
+ else
+ pkgs.fetchurl {
+ url = predictURLFromPypi { inherit pname file hash kind; };
+ inherit hash;
+ }
+ );
+ getBuildSystemPkgs =
+ { pythonPackages
+ , pyProject
+ }:
+ let
+ missingBuildBackendError = "No build-system.build-backend section in pyproject.toml. "
+ + "Add such a section as described in https://python-poetry.org/docs/pyproject/#poetry-and-pep-517";
+ requires = lib.attrByPath [ "build-system" "requires" ] (throw missingBuildBackendError) pyProject;
+ requiredPkgs = builtins.map (n: lib.elemAt (builtins.match "([^!=<>~\[]+).*" n) 0) requires;
+ in
+ builtins.map (drvAttr: pythonPackages.${drvAttr} or (throw "unsupported build system requirement ${drvAttr}")) requiredPkgs;
+
+ # Find gitignore files recursively in parent directory stopping with .git
+ findGitIgnores = path:
+ let
+ parent = path + "/..";
+ gitIgnore = path + "/.gitignore";
+ isGitRoot = builtins.pathExists (path + "/.git");
+ hasGitIgnore = builtins.pathExists gitIgnore;
+ gitIgnores = if hasGitIgnore then [ gitIgnore ] else [ ];
+ in
+ lib.optionals (builtins.toString path != "/" && ! isGitRoot) (findGitIgnores parent) ++ gitIgnores;
+
+ /*
+ Provides a source filtering mechanism that:
+
+ - Filters gitignore's
+ - Filters pycache/pyc files
+ - Uses cleanSourceFilter to filter out .git/.hg, .o/.so, editor backup files & nix result symlinks
+ */
+ cleanPythonSources = { src }:
+ let
+ gitIgnores = findGitIgnores src;
+ pycacheFilter = name: type:
+ (type == "directory" && ! lib.strings.hasInfix "__pycache__" name)
+ || (type == "regular" && ! lib.strings.hasSuffix ".pyc" name)
+ ;
+ in
+ lib.cleanSourceWith {
+ filter = lib.cleanSourceFilter;
+ src = lib.cleanSourceWith {
+ filter = pkgs.nix-gitignore.gitignoreFilterPure pycacheFilter gitIgnores src;
+ inherit src;
+ };
+ };
+in
+{
+ inherit
+ fetchFromPypi
+ fetchWheelFromPypi
+ getManyLinuxDeps
+ isCompatible
+ readTOML
+ getBuildSystemPkgs
+ satisfiesSemver
+ cleanPythonSources
+ moduleName
+ getPythonVersion
+ ;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
new file mode 100644
index 000000000000..9619e3649379
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -0,0 +1,170 @@
+{ autoPatchelfHook
+, pkgs
+, lib
+, python
+, buildPythonPackage
+, poetryLib
+, evalPep508
+}:
+{ name
+, version
+, files
+, source
+, dependencies ? { }
+, pythonPackages
+, python-versions
+, pwd
+, sourceSpec
+, supportedExtensions ? lib.importJSON ./extensions.json
+, preferWheels ? false
+, __isBootstrap ? false # Hack: Always add Poetry as a build input unless bootstrapping
+, ...
+}:
+
+pythonPackages.callPackage
+ (
+ { preferWheel ? preferWheels
+ , ...
+ }@args:
+ let
+ inherit (poetryLib) isCompatible getManyLinuxDeps fetchFromPypi moduleName;
+
+ inherit (import ./pep425.nix {
+ inherit lib python;
+ inherit (pkgs) stdenv;
+ }) selectWheel
+ ;
+ fileCandidates =
+ let
+ supportedRegex = ("^.*?(" + builtins.concatStringsSep "|" supportedExtensions + ")");
+ matchesVersion = fname: builtins.match ("^.*" + builtins.replaceStrings [ "." ] [ "\\." ] version + ".*$") fname != null;
+ hasSupportedExtension = fname: builtins.match supportedRegex fname != null;
+ isCompatibleEgg = fname: ! lib.strings.hasSuffix ".egg" fname || lib.strings.hasSuffix "py${python.pythonVersion}.egg" fname;
+ in
+ builtins.filter (f: matchesVersion f.file && hasSupportedExtension f.file && isCompatibleEgg f.file) files;
+ toPath = s: pwd + "/${s}";
+ isSource = source != null;
+ isGit = isSource && source.type == "git";
+ isLocal = isSource && source.type == "directory";
+ localDepPath = toPath source.url;
+
+ buildSystemPkgs =
+ let
+ pyProjectPath = localDepPath + "/pyproject.toml";
+ pyProject = poetryLib.readTOML pyProjectPath;
+ in
+ if builtins.pathExists pyProjectPath then
+ poetryLib.getBuildSystemPkgs
+ {
+ inherit pythonPackages pyProject;
+ } else [ ];
+
+ fileInfo =
+ let
+ isBdist = f: lib.strings.hasSuffix "whl" f.file;
+ isSdist = f: ! isBdist f && ! isEgg f;
+ isEgg = f: lib.strings.hasSuffix ".egg" f.file;
+ binaryDist = selectWheel fileCandidates;
+ sourceDist = builtins.filter isSdist fileCandidates;
+ eggs = builtins.filter isEgg fileCandidates;
+ entries = (if preferWheel then binaryDist ++ sourceDist else sourceDist ++ binaryDist) ++ eggs;
+ lockFileEntry = builtins.head entries;
+ _isEgg = isEgg lockFileEntry;
+ in
+ rec {
+ inherit (lockFileEntry) file hash;
+ name = file;
+ format =
+ if _isEgg then "egg"
+ else if lib.strings.hasSuffix ".whl" name then "wheel"
+ else "pyproject";
+ kind =
+ if _isEgg then python.pythonVersion
+ else if format == "pyproject" then "source"
+ else (builtins.elemAt (lib.strings.splitString "-" name) 2);
+ };
+
+ # Prevent infinite recursion
+ skipSetupToolsSCM = [
+ "setuptools_scm"
+ "setuptools-scm"
+ "toml" # Toml is an extra for setuptools-scm
+ ];
+ baseBuildInputs = lib.optional (! lib.elem name skipSetupToolsSCM) pythonPackages.setuptools-scm;
+ format = if isLocal then "pyproject" else if isGit then "pyproject" else fileInfo.format;
+ in
+ buildPythonPackage {
+ pname = moduleName name;
+ version = version;
+
+ inherit format;
+
+ doCheck = false; # We never get development deps
+
+ # Stripping pre-built wheels lead to `ELF load command address/offset not properly aligned`
+ dontStrip = format == "wheel";
+
+ nativeBuildInputs = [
+ pythonPackages.poetry2nixFixupHook
+ ]
+ ++ lib.optional (!isSource && (getManyLinuxDeps fileInfo.name).str != null) autoPatchelfHook
+ ++ lib.optional (format == "pyproject") pythonPackages.removePathDependenciesHook
+ ;
+
+ buildInputs = (
+ baseBuildInputs
+ ++ lib.optional (!isSource) (getManyLinuxDeps fileInfo.name).pkg
+ ++ lib.optional isLocal buildSystemPkgs
+ ++ lib.optional (!__isBootstrap) [ pythonPackages.poetry ]
+ );
+
+ propagatedBuildInputs =
+ let
+ compat = isCompatible (poetryLib.getPythonVersion python);
+ deps = lib.filterAttrs
+ (n: v: v)
+ (
+ lib.mapAttrs
+ (
+ n: v:
+ let
+ constraints = v.python or "";
+ pep508Markers = v.markers or "";
+ in
+ compat constraints && evalPep508 pep508Markers
+ )
+ dependencies
+ );
+ depAttrs = lib.attrNames deps;
+ in
+ builtins.map (n: pythonPackages.${moduleName n}) depAttrs;
+
+ meta = {
+ broken = ! isCompatible (poetryLib.getPythonVersion python) python-versions;
+ license = [ ];
+ inherit (python.meta) platforms;
+ };
+
+ passthru = {
+ inherit args;
+ };
+
+ # We need to retrieve kind from the interpreter and the filename of the package
+ # Interpreters should declare what wheel types they're compatible with (python type + ABI)
+ # Here we can then choose a file based on that info.
+ src =
+ if isGit then
+ (
+ builtins.fetchGit {
+ inherit (source) url;
+ rev = source.reference;
+ ref = sourceSpec.branch or sourceSpec.rev or sourceSpec.tag or "HEAD";
+ }
+ ) else if isLocal then (poetryLib.cleanPythonSources { src = localDepPath; }) else
+ fetchFromPypi {
+ pname = name;
+ inherit (fileInfo) file hash kind;
+ };
+ }
+ )
+{ }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
new file mode 100644
index 000000000000..ca6c0c7cc49b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -0,0 +1,1196 @@
+{ pkgs ? import <nixpkgs> { }
+, lib ? pkgs.lib
+, stdenv ? pkgs.stdenv
+}:
+
+self: super:
+
+{
+ automat = super.automat.overridePythonAttrs (
+ old: rec {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.m2r ];
+ }
+ );
+
+ ansible = super.ansible.overridePythonAttrs (
+ old: {
+
+ prePatch = pkgs.python.pkgs.ansible.prePatch or "";
+
+ postInstall = pkgs.python.pkgs.ansible.postInstall or "";
+
+ # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies
+ # in a correct manner.
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ self.pycrypto
+ self.paramiko
+ self.jinja2
+ self.pyyaml
+ self.httplib2
+ self.six
+ self.netaddr
+ self.dnspython
+ self.jmespath
+ self.dopy
+ self.ncclient
+ ];
+ }
+ );
+
+ ansible-lint = super.ansible-lint.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+ preBuild = ''
+ export HOME=$(mktemp -d)
+ '';
+ }
+ );
+
+ astroid = super.astroid.overridePythonAttrs (
+ old: rec {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ doCheck = false;
+ }
+ );
+
+ av = super.av.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ pkgs.pkgconfig
+ ];
+ buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
+ }
+ );
+
+ bcrypt = super.bcrypt.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+ }
+ );
+
+ cairocffi = super.cairocffi.overridePythonAttrs (
+ old: {
+ inherit (pkgs.python3.pkgs.cairocffi) patches;
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ cairosvg = super.cairosvg.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ cssselect2 = super.cssselect2.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ cffi =
+ # cffi is bundled with pypy
+ if self.python.implementation == "pypy" then null else
+ (
+ super.cffi.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.libffi ];
+ }
+ )
+ );
+
+ cftime = super.cftime.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.cython
+ ];
+ }
+ );
+
+ configparser = super.configparser.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.toml
+ ];
+
+ postPatch = ''
+ substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
+ '';
+ }
+ );
+
+ cryptography = super.cryptography.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+ }
+ );
+
+ dictdiffer = super.dictdiffer.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+ }
+ );
+
+ django = (
+ super.django.overridePythonAttrs (
+ old: {
+ propagatedNativeBuildInputs = (old.propagatedNativeBuildInputs or [ ])
+ ++ [ pkgs.gettext ];
+ }
+ )
+ );
+
+ django-bakery = super.django-bakery.overridePythonAttrs (
+ old: {
+ configurePhase = ''
+ if ! test -e LICENSE; then
+ touch LICENSE
+ fi
+ '' + (old.configurePhase or "");
+ }
+ );
+
+ dlib = super.dlib.overridePythonAttrs (
+ old: {
+ # Parallel building enabled
+ inherit (pkgs.python.pkgs.dlib) patches;
+
+ enableParallelBuilding = true;
+ dontUseCmakeConfigure = true;
+
+ nativeBuildInputs = old.nativeBuildInputs ++ pkgs.dlib.nativeBuildInputs;
+ buildInputs = old.buildInputs ++ pkgs.dlib.buildInputs;
+ }
+ );
+
+ # Environment markers are not always included (depending on how a dep was defined)
+ enum34 = if self.pythonAtLeast "3.4" then null else super.enum34;
+
+ eth-hash = super.eth-hash.overridePythonAttrs {
+ preConfigure = ''
+ substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+ '';
+ };
+
+ eth-keyfile = super.eth-keyfile.overridePythonAttrs {
+ preConfigure = ''
+ substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+ '';
+ };
+
+ eth-keys = super.eth-keys.overridePythonAttrs {
+ preConfigure = ''
+ substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+ '';
+ };
+
+ faker = super.faker.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ doCheck = false;
+ }
+ );
+
+ fancycompleter = super.fancycompleter.overridePythonAttrs (
+ old: {
+ postPatch = ''
+ substituteInPlace setup.py \
+ --replace 'setup_requires="setupmeta"' 'setup_requires=[]' \
+ --replace 'versioning="devcommit"' 'version="${old.version}"'
+ '';
+ }
+ );
+
+ fastparquet = super.fastparquet.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ grandalf = super.grandalf.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ doCheck = false;
+ }
+ );
+
+ h3 = super.h3.overridePythonAttrs (
+ old: {
+ preBuild = (old.preBuild or "") + ''
+ substituteInPlace h3/h3.py \
+ --replace "'{}/{}'.format(_dirname, libh3_path)" '"${pkgs.h3}/lib/libh3${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}"'
+ '';
+ }
+ );
+
+ h5py = super.h5py.overridePythonAttrs (
+ old:
+ if old.format != "wheel" then rec {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+ buildInputs = old.buildInputs ++ [ pkgs.hdf5 self.pkgconfig self.cython ];
+ configure_flags = "--hdf5=${pkgs.hdf5}";
+ postConfigure = ''
+ ${self.python.executable} setup.py configure ${configure_flags}
+ '';
+ } else old
+ );
+
+ horovod = super.horovod.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
+ }
+ );
+
+ imagecodecs = super.imagecodecs.overridePythonAttrs (
+ old: {
+ patchPhase = ''
+ substituteInPlace setup.py \
+ --replace "/usr/include/openjpeg-2.3" \
+ "${pkgs.openjpeg.dev}/include/openjpeg-2.3"
+ substituteInPlace setup.py \
+ --replace "/usr/include/jxrlib" \
+ "$out/include/libjxr"
+ substituteInPlace imagecodecs/_zopfli.c \
+ --replace '"zopfli/zopfli.h"' \
+ '<zopfli.h>'
+ substituteInPlace imagecodecs/_zopfli.c \
+ --replace '"zopfli/zlib_container.h"' \
+ '<zlib_container.h>'
+ substituteInPlace imagecodecs/_zopfli.c \
+ --replace '"zopfli/gzip_container.h"' \
+ '<gzip_container.h>'
+ '';
+
+ preBuild = ''
+ mkdir -p $out/include/libjxr
+ ln -s ${pkgs.jxrlib}/include/libjxr/**/* $out/include/libjxr
+
+ '';
+
+ buildInputs = old.buildInputs ++ [
+ # Commented out packages are declared required, but not actually
+ # needed to build. They are not yet packaged for nixpkgs.
+ # bitshuffle
+ pkgs.brotli
+ # brunsli
+ pkgs.bzip2
+ pkgs.c-blosc
+ # charls
+ pkgs.giflib
+ pkgs.jxrlib
+ pkgs.lcms
+ pkgs.libaec
+ pkgs.libaec
+ pkgs.libjpeg_turbo
+ # liblzf
+ # liblzma
+ pkgs.libpng
+ pkgs.libtiff
+ pkgs.libwebp
+ pkgs.lz4
+ pkgs.openjpeg
+ pkgs.snappy
+ # zfp
+ pkgs.zopfli
+ pkgs.zstd
+ pkgs.zlib
+ ];
+ }
+ );
+
+ # importlib-metadata has an incomplete dependency specification
+ importlib-metadata = super.importlib-metadata.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ lib.optional self.python.isPy2 self.pathlib2;
+ }
+ );
+
+ intreehooks = super.intreehooks.overridePythonAttrs (
+ old: {
+ doCheck = false;
+ }
+ );
+
+ isort = super.isort.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.setuptools ];
+ }
+ );
+
+ # disable the removal of pyproject.toml, required because of setuptools_scm
+ jaraco-functools = super.jaraco-functools.overridePythonAttrs (
+ old: {
+ dontPreferSetupPy = true;
+ }
+ );
+
+ jsonpickle = super.jsonpickle.overridePythonAttrs (
+ old: {
+ dontPreferSetupPy = true;
+ }
+ );
+
+ jupyter = super.jupyter.overridePythonAttrs (
+ old: rec {
+ # jupyter is a meta-package. Everything relevant comes from the
+ # dependencies. It does however have a jupyter.py file that conflicts
+ # with jupyter-core so this meta solves this conflict.
+ meta.priority = 100;
+ }
+ );
+
+ keyring = super.keyring.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.toml
+ ];
+ postPatch = ''
+ substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
+ '';
+ }
+ );
+
+ kiwisolver = super.kiwisolver.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.cppy
+ ];
+ }
+ );
+
+ lap = super.lap.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ self.numpy
+ ];
+ }
+ );
+
+ libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: {
+ nativeBuildInputs = nativeBuildInputs ++ [ pkgs.pkgconfig ];
+ propagatedBuildInputs = [ pkgs.libvirt ];
+ });
+
+ llvmlite = super.llvmlite.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
+
+ # Disable static linking
+ # https://github.com/numba/llvmlite/issues/93
+ postPatch = ''
+ substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
+
+ substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
+ '';
+
+ # Set directory containing llvm-config binary
+ preConfigure = ''
+ export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
+ '';
+
+ __impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
+
+ passthru = old.passthru // { llvm = pkgs.llvm; };
+ }
+ );
+
+ lockfile = super.lockfile.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
+ }
+ );
+
+ lxml = super.lxml.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
+ buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
+ }
+ );
+
+ markupsafe = super.markupsafe.overridePythonAttrs (
+ old: {
+ src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
+ }
+ );
+
+ matplotlib = super.matplotlib.overridePythonAttrs (
+ old:
+ let
+ enableGhostscript = old.passthru.enableGhostscript or false;
+ enableGtk3 = old.passthru.enableTk or false;
+ enableQt = old.passthru.enableQt or false;
+ enableTk = old.passthru.enableTk or false;
+
+ inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+ in
+ {
+ NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
+
+ XDG_RUNTIME_DIR = "/tmp";
+
+ buildInputs = old.buildInputs
+ ++ lib.optional enableGhostscript pkgs.ghostscript
+ ++ lib.optional stdenv.isDarwin [ Cocoa ];
+
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ pkgs.pkgconfig
+ ];
+
+ postPatch = ''
+ cat > setup.cfg <<EOF
+ [libs]
+ system_freetype = True
+ EOF
+ '';
+
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ pkgs.libpng
+ pkgs.freetype
+ ]
+ ++ stdenv.lib.optionals enableGtk3 [ pkgs.cairo self.pycairo pkgs.gtk3 pkgs.gobject-introspection self.pygobject3 ]
+ ++ stdenv.lib.optionals enableTk [ pkgs.tcl pkgs.tk self.tkinter pkgs.libX11 ]
+ ++ stdenv.lib.optionals enableQt [ self.pyqt5 ]
+ ;
+
+ inherit (super.matplotlib) patches;
+ }
+ );
+
+ # Calls Cargo at build time for source builds and is really tricky to package
+ maturin = super.maturin.override {
+ preferWheel = true;
+ };
+
+ mccabe = super.mccabe.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ doCheck = false;
+ }
+ );
+
+ mip = super.mip.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.autoPatchelfHook ];
+
+ buildInputs = old.buildInputs ++ [ pkgs.zlib self.cppy ];
+ }
+ );
+
+ molecule =
+ if lib.versionOlder super.molecule.version "3.0.0" then
+ (super.molecule.overridePythonAttrs (
+ old: {
+ patches = (old.patches or [ ]) ++ [
+ # Fix build with more recent setuptools versions
+ (pkgs.fetchpatch {
+ url = "https://github.com/ansible-community/molecule/commit/c9fee498646a702c77b5aecf6497cff324acd056.patch";
+ sha256 = "1g1n45izdz0a3c9akgxx14zhdw6c3dkb48j8pq64n82fa6ndl1b7";
+ excludes = [ "pyproject.toml" ];
+ })
+ ];
+ buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+ }
+ )) else
+ super.molecule.overridePythonAttrs (old: {
+ buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+ });
+
+ mongomock = super.mongomock.overridePythonAttrs (oa: {
+ buildInputs = oa.buildInputs ++ [ self.pbr ];
+ });
+
+ multiaddr = super.multiaddr.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ netcdf4 = super.netcdf4.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.cython
+ ];
+
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ pkgs.zlib
+ pkgs.netcdf
+ pkgs.hdf5
+ pkgs.curl
+ pkgs.libjpeg
+ ];
+
+ # Variables used to configure the build process
+ USE_NCCONFIG = "0";
+ HDF5_DIR = lib.getDev pkgs.hdf5;
+ NETCDF4_DIR = pkgs.netcdf;
+ CURL_DIR = pkgs.curl.dev;
+ JPEG_DIR = pkgs.libjpeg.dev;
+ }
+ );
+
+ numpy = super.numpy.overridePythonAttrs (
+ old:
+ let
+ blas = old.passthru.args.blas or pkgs.openblasCompat;
+ blasImplementation = lib.nameFromURL blas.name "-";
+ cfg = pkgs.writeTextFile {
+ name = "site.cfg";
+ text = (
+ lib.generators.toINI
+ { }
+ {
+ ${blasImplementation} = {
+ include_dirs = "${blas}/include";
+ library_dirs = "${blas}/lib";
+ } // lib.optionalAttrs (blasImplementation == "mkl") {
+ mkl_libs = "mkl_rt";
+ lapack_libs = "";
+ };
+ }
+ );
+ };
+ in
+ {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+ buildInputs = old.buildInputs ++ [ blas self.cython ];
+ enableParallelBuilding = true;
+ preBuild = ''
+ ln -s ${cfg} site.cfg
+ '';
+ passthru = old.passthru // {
+ blas = blas;
+ inherit blasImplementation cfg;
+ };
+ }
+ );
+
+ openexr = super.openexr.overridePythonAttrs (
+ old: rec {
+ buildInputs = old.buildInputs ++ [ pkgs.openexr pkgs.ilmbase ];
+ NIX_CFLAGS_COMPILE = [ "-I${pkgs.openexr.dev}/include/OpenEXR" "-I${pkgs.ilmbase.dev}/include/OpenEXR" ];
+ }
+ );
+
+ parsel = super.parsel.overridePythonAttrs (
+ old: rec {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ peewee = super.peewee.overridePythonAttrs (
+ old:
+ let
+ withPostgres = old.passthru.withPostgres or false;
+ withMysql = old.passthru.withMysql or false;
+ in
+ {
+ buildInputs = old.buildInputs ++ [ self.cython pkgs.sqlite ];
+ propagatedBuildInputs = old.propagatedBuildInputs
+ ++ lib.optional withPostgres self.psycopg2
+ ++ lib.optional withMysql self.mysql-connector;
+ }
+ );
+
+ pillow = super.pillow.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
+ buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
+ }
+ );
+
+ poetry-core = super.poetry-core.overridePythonAttrs (old: {
+ # "Vendor" dependencies (for build-system support)
+ postPatch = ''
+ echo "import sys" >> poetry/__init__.py
+ for path in ''${PYTHONPATH//:/ }; do echo $path; done | uniq | while read path; do
+ echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py
+ done
+ '';
+
+ # Propagating dependencies leads to issues downstream
+ # We've already patched poetry to prefer "vendored" dependencies
+ postFixup = ''
+ rm $out/nix-support/propagated-build-inputs
+ '';
+ });
+
+ # disable the removal of pyproject.toml, required because of setuptools_scm
+ portend = super.portend.overridePythonAttrs (
+ old: {
+ dontPreferSetupPy = true;
+ }
+ );
+
+ psycopg2 = super.psycopg2.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs
+ ++ lib.optional stdenv.isDarwin pkgs.openssl;
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+ }
+ );
+
+ psycopg2-binary = super.psycopg2-binary.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs
+ ++ lib.optional stdenv.isDarwin pkgs.openssl;
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
+ }
+ );
+
+ pyarrow =
+ if lib.versionAtLeast super.pyarrow.version "0.16.0" then
+ super.pyarrow.overridePythonAttrs
+ (
+ old:
+ let
+ parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
+
+ # Starting with nixpkgs revision f149c7030a7, pyarrow takes "python3" as an argument
+ # instead of "python". Below we inspect function arguments to maintain compatibilitiy.
+ _arrow-cpp = pkgs.arrow-cpp.override (
+ builtins.intersectAttrs
+ (lib.functionArgs pkgs.arrow-cpp.override)
+ { python = self.python; python3 = self.python; }
+ );
+
+ ARROW_HOME = _arrow-cpp;
+ arrowCppVersion = parseMinor pkgs.arrow-cpp;
+ pyArrowVersion = parseMinor super.pyarrow;
+ errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
+ in
+ if arrowCppVersion != pyArrowVersion then throw errorMessage else {
+
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ self.cython
+ pkgs.pkgconfig
+ pkgs.cmake
+ ];
+
+ preBuild = ''
+ export PYARROW_PARALLEL=$NIX_BUILD_CORES
+ '';
+
+ PARQUET_HOME = _arrow-cpp;
+ inherit ARROW_HOME;
+
+ buildInputs = old.buildInputs ++ [
+ pkgs.arrow-cpp
+ ];
+
+ PYARROW_BUILD_TYPE = "release";
+ PYARROW_WITH_PARQUET = true;
+ PYARROW_CMAKE_OPTIONS = [
+ "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
+
+ # This doesn't use setup hook to call cmake so we need to workaround #54606
+ # ourselves
+ "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
+ ];
+
+ dontUseCmakeConfigure = true;
+ }
+ ) else
+ super.pyarrow.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ self.cython
+ ];
+ }
+ );
+
+ pycairo = (
+ drv: (
+ drv.overridePythonAttrs (
+ _: {
+ format = "other";
+ }
+ )
+ ).overridePythonAttrs (
+ old: {
+
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ pkgs.meson
+ pkgs.ninja
+ pkgs.pkgconfig
+ ];
+
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ pkgs.cairo
+ pkgs.xlibsWrapper
+ ];
+
+ mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ];
+ }
+ )
+ )
+ super.pycairo;
+
+ pycocotools = super.pycocotools.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ self.cython
+ self.numpy
+ ];
+ }
+ );
+
+ pygame = super.pygame.overridePythonAttrs (
+ old: rec {
+ nativeBuildInputs = [
+ pkgs.pkg-config
+ pkgs.SDL
+ ];
+
+ buildInputs = [
+ pkgs.SDL
+ pkgs.SDL_image
+ pkgs.SDL_mixer
+ pkgs.SDL_ttf
+ pkgs.libpng
+ pkgs.libjpeg
+ pkgs.portmidi
+ pkgs.xorg.libX11
+ pkgs.freetype
+ ];
+
+ # Tests fail because of no audio device and display.
+ doCheck = false;
+ preConfigure = ''
+ sed \
+ -e "s/origincdirs = .*/origincdirs = []/" \
+ -e "s/origlibdirs = .*/origlibdirs = []/" \
+ -e "/'\/lib\/i386-linux-gnu', '\/lib\/x86_64-linux-gnu']/d" \
+ -e "/\/include\/smpeg/d" \
+ -i buildconfig/config_unix.py
+ ${lib.concatMapStrings
+ (dep: ''
+ sed \
+ -e "/origincdirs =/a\ origincdirs += ['${lib.getDev dep}/include']" \
+ -e "/origlibdirs =/a\ origlibdirs += ['${lib.getLib dep}/lib']" \
+ -i buildconfig/config_unix.py
+ '')
+ buildInputs
+ }
+ LOCALBASE=/ ${self.python.interpreter} buildconfig/config.py
+ '';
+ }
+ );
+
+ pygobject = super.pygobject.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+ buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
+ }
+ );
+
+ pylint = super.pylint.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ doCheck = false;
+ }
+ );
+
+ pyopenssl = super.pyopenssl.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.openssl ];
+ }
+ );
+
+ python-ldap = super.python-ldap.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.openldap pkgs.cyrus_sasl ];
+ }
+ );
+
+ pytoml = super.pytoml.overridePythonAttrs (
+ old: {
+ doCheck = false;
+ }
+ );
+
+ pyqt5 =
+ let
+ drv = super.pyqt5;
+ withConnectivity = drv.passthru.args.withConnectivity or false;
+ withMultimedia = drv.passthru.args.withMultimedia or false;
+ withWebKit = drv.passthru.args.withWebKit or false;
+ withWebSockets = drv.passthru.args.withWebSockets or false;
+ in
+ super.pyqt5.overridePythonAttrs (
+ old: {
+ format = "other";
+
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ pkgs.pkgconfig
+ pkgs.qt5.qmake
+ pkgs.xorg.lndir
+ pkgs.qt5.qtbase
+ pkgs.qt5.qtsvg
+ pkgs.qt5.qtdeclarative
+ pkgs.qt5.qtwebchannel
+ # self.pyqt5-sip
+ self.sip
+ ]
+ ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+ ++ lib.optional withMultimedia pkgs.qt5.qtmultimedia
+ ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+ ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+ ;
+
+ buildInputs = old.buildInputs ++ [
+ pkgs.dbus
+ pkgs.qt5.qtbase
+ pkgs.qt5.qtsvg
+ pkgs.qt5.qtdeclarative
+ self.sip
+ ]
+ ++ lib.optional withConnectivity pkgs.qt5.qtconnectivity
+ ++ lib.optional withWebKit pkgs.qt5.qtwebkit
+ ++ lib.optional withWebSockets pkgs.qt5.qtwebsockets
+ ;
+
+ # Fix dbus mainloop
+ patches = pkgs.python3.pkgs.pyqt5.patches or [ ];
+
+ configurePhase = ''
+ runHook preConfigure
+
+ export PYTHONPATH=$PYTHONPATH:$out/${self.python.sitePackages}
+
+ mkdir -p $out/${self.python.sitePackages}/dbus/mainloop
+ ${self.python.executable} configure.py -w \
+ --confirm-license \
+ --no-qml-plugin \
+ --bindir=$out/bin \
+ --destdir=$out/${self.python.sitePackages} \
+ --stubsdir=$out/${self.python.sitePackages}/PyQt5 \
+ --sipdir=$out/share/sip/PyQt5 \
+ --designer-plugindir=$out/plugins/designer
+
+ runHook postConfigure
+ '';
+
+ postInstall = ''
+ ln -s ${self.pyqt5-sip}/${self.python.sitePackages}/PyQt5/sip.* $out/${self.python.sitePackages}/PyQt5/
+ for i in $out/bin/*; do
+ wrapProgram $i --prefix PYTHONPATH : "$PYTHONPATH"
+ done
+
+ # Let's make it a namespace package
+ cat << EOF > $out/${self.python.sitePackages}/PyQt5/__init__.py
+ from pkgutil import extend_path
+ __path__ = extend_path(__path__, __name__)
+ EOF
+ '';
+
+ installCheckPhase =
+ let
+ modules = [
+ "PyQt5"
+ "PyQt5.QtCore"
+ "PyQt5.QtQml"
+ "PyQt5.QtWidgets"
+ "PyQt5.QtGui"
+ ]
+ ++ lib.optional withWebSockets "PyQt5.QtWebSockets"
+ ++ lib.optional withWebKit "PyQt5.QtWebKit"
+ ++ lib.optional withMultimedia "PyQt5.QtMultimedia"
+ ++ lib.optional withConnectivity "PyQt5.QtConnectivity"
+ ;
+ imports = lib.concatMapStrings (module: "import ${module};") modules;
+ in
+ ''
+ echo "Checking whether modules can be imported..."
+ ${self.python.interpreter} -c "${imports}"
+ '';
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+ }
+ );
+
+ pytest-datadir = super.pytest-datadir.overridePythonAttrs (
+ old: {
+ postInstall = ''
+ rm -f $out/LICENSE
+ '';
+ }
+ );
+
+ pytest = super.pytest.overridePythonAttrs (
+ old: {
+ doCheck = false;
+ }
+ );
+
+ pytest-runner = super.pytest-runner or super.pytestrunner;
+
+ python-jose = super.python-jose.overridePythonAttrs (
+ old: {
+ postPath = ''
+ substituteInPlace setup.py --replace "'pytest-runner'," ""
+ substituteInPlace setup.py --replace "'pytest-runner'" ""
+ '';
+ }
+ );
+
+ ffmpeg-python = super.ffmpeg-python.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ python-prctl = super.python-prctl.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ pkgs.libcap
+ ];
+ }
+ );
+
+ pyzmq = super.pyzmq.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.zeromq ];
+ }
+ );
+
+ rockset = super.rockset.overridePythonAttrs (
+ old: rec {
+ postPatch = ''
+ cp ./setup_rockset.py ./setup.py
+ '';
+ }
+ );
+
+ scaleapi = super.scaleapi.overridePythonAttrs (
+ old: {
+ postPatch = ''
+ substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
+ '';
+ }
+ );
+
+ pandas = super.pandas.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ self.cython ];
+ }
+ );
+
+ panel = super.panel.overridePythonAttrs (
+ old: {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.nodejs ];
+ }
+ );
+
+ # Pybind11 is an undeclared dependency of scipy that we need to pick from nixpkgs
+ # Make it not fail with infinite recursion
+ pybind11 = super.pybind11.overridePythonAttrs (
+ old: {
+ cmakeFlags = (old.cmakeFlags or [ ]) ++ [
+ "-DPYBIND11_TEST=off"
+ ];
+ doCheck = false; # Circular test dependency
+ }
+ );
+
+ rlp = super.rlp.overridePythonAttrs {
+ preConfigure = ''
+ substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+ '';
+ };
+
+ scipy = super.scipy.overridePythonAttrs (
+ old:
+ if old.format != "wheel" then {
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pybind11 ];
+ setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
+ enableParallelBuilding = true;
+ buildInputs = old.buildInputs ++ [ self.numpy.blas ];
+ preConfigure = ''
+ sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
+ export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+ '';
+ preBuild = ''
+ ln -s ${self.numpy.cfg} site.cfg
+ '';
+ } else old
+ );
+
+ scikit-learn = super.scikit-learn.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [
+ pkgs.gfortran
+ pkgs.glibcLocales
+ ] ++ lib.optionals stdenv.cc.isClang [
+ pkgs.llvmPackages.openmp
+ ];
+
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ self.cython
+ ];
+
+ enableParallelBuilding = true;
+ }
+ );
+
+ shapely = super.shapely.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
+ inherit (pkgs.python3.pkgs.shapely) patches GEOS_LIBRARY_PATH;
+ }
+ );
+
+ shellingham =
+ if lib.versionAtLeast super.shellingham.version "1.3.2" then
+ (
+ super.shellingham.overridePythonAttrs (
+ old: {
+ format = "pyproject";
+ }
+ )
+ ) else super.shellingham;
+
+ tables = super.tables.overridePythonAttrs (
+ old: {
+ HDF5_DIR = "${pkgs.hdf5}";
+ nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
+ propagatedBuildInputs = old.nativeBuildInputs ++ [ pkgs.hdf5 self.numpy self.numexpr ];
+ }
+ );
+
+ # disable the removal of pyproject.toml, required because of setuptools_scm
+ tempora = super.tempora.overridePythonAttrs (
+ old: {
+ dontPreferSetupPy = true;
+ }
+ );
+
+ tensorflow = super.tensorflow.overridePythonAttrs (
+ old: {
+ postInstall = ''
+ rm $out/bin/tensorboard
+ '';
+ }
+ );
+
+ tensorpack = super.tensorpack.overridePythonAttrs (
+ old: {
+ postPatch = ''
+ substituteInPlace setup.cfg --replace "# will call find_packages()" ""
+ '';
+ }
+ );
+
+ tinycss2 = super.tinycss2.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ # nix uses a dash, poetry uses an underscore
+ typing_extensions = super.typing_extensions or self.typing-extensions;
+
+ urwidtrees = super.urwidtrees.overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ self.urwid
+ ];
+ }
+ );
+
+ vose-alias-method = super.vose-alias-method.overridePythonAttrs (
+ old: {
+ postInstall = ''
+ rm -f $out/LICENSE
+ '';
+ }
+ );
+
+ vispy = super.vispy.overrideAttrs (
+ old: {
+ inherit (pkgs.python3.pkgs.vispy) patches;
+ nativeBuildInputs = old.nativeBuildInputs ++ [
+ self.cython
+ self.setuptools-scm-git-archive
+ ];
+ }
+ );
+
+ uvloop = super.uvloop.overridePythonAttrs (
+ old: {
+ buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
+ pkgs.darwin.apple_sdk.frameworks.ApplicationServices
+ pkgs.darwin.apple_sdk.frameworks.CoreServices
+ ];
+ }
+ );
+
+
+ # Stop infinite recursion by using bootstrapped pkg from nixpkgs
+ bootstrapped-pip = super.bootstrapped-pip.override {
+ wheel = (pkgs.python3.pkgs.override {
+ python = self.python;
+ }).wheel;
+ };
+
+ weasyprint = super.weasyprint.overridePythonAttrs (
+ old: {
+ inherit (pkgs.python3.pkgs.weasyprint) patches;
+ buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+ }
+ );
+
+ web3 = super.web3.overridePythonAttrs {
+ preConfigure = ''
+ substituteInPlace setup.py --replace \'setuptools-markdown\' ""
+ '';
+ };
+
+ wheel =
+ let
+ isWheel = super.wheel.src.isWheel or false;
+ # If "wheel" is a pre-built binary wheel
+ wheelPackage = super.buildPythonPackage {
+ inherit (super.wheel) pname name version src;
+ inherit (pkgs.python3.pkgs.wheel) meta;
+ format = "wheel";
+ };
+ # If "wheel" is built from source
+ sourcePackage = (
+ pkgs.python3.pkgs.override {
+ python = self.python;
+ }
+ ).wheel.overridePythonAttrs (
+ old: {
+ inherit (super.wheel) pname name version src;
+ }
+ );
+ in
+ if isWheel then wheelPackage else sourcePackage;
+
+ zipp = if super.zipp == null then null else
+ (
+ if lib.versionAtLeast super.zipp.version "2.0.0" then
+ (
+ super.zipp.overridePythonAttrs (
+ old: {
+ prePatch = ''
+ substituteInPlace setup.py --replace \
+ 'setuptools.setup()' \
+ 'setuptools.setup(version="${super.zipp.version}")'
+ '';
+ }
+ )
+ ) else super.zipp
+ ).overridePythonAttrs (
+ old: {
+ propagatedBuildInputs = old.propagatedBuildInputs ++ [
+ self.toml
+ ];
+ }
+ );
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
new file mode 100644
index 000000000000..d32e3aacce6c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
@@ -0,0 +1,105 @@
+{ lib, stdenv, python, isLinux ? stdenv.isLinux }:
+let
+ inherit (lib.strings) hasSuffix hasInfix splitString removeSuffix;
+
+ # The 'cpxy" as determined by `python.version`
+ #
+ # e.g "2.7.17" -> "cp27"
+ # "3.5.9" -> "cp35"
+ pythonTag =
+ let
+ ver = builtins.splitVersion python.version;
+ major = builtins.elemAt ver 0;
+ minor = builtins.elemAt ver 1;
+ in
+ "cp${major}${minor}";
+ abiTag = "${pythonTag}m";
+
+ #
+ # Parses wheel file returning an attribute set
+ #
+ toWheelAttrs = str:
+ let
+ entries' = splitString "-" str;
+ # Hack: Remove version "suffixes" like 2.11.4-1
+ entries = builtins.filter (x: builtins.match "[0-9]" x == null) entries';
+ p = removeSuffix ".whl" (builtins.elemAt entries 4);
+ in
+ {
+ pkgName = builtins.elemAt entries 0;
+ pkgVer = builtins.elemAt entries 1;
+ pyVer = builtins.elemAt entries 2;
+ abi = builtins.elemAt entries 3;
+ platform = p;
+ };
+
+ #
+ # Builds list of acceptable osx wheel files
+ #
+ # <versions> accepted versions in descending order of preference
+ # <candidates> list of wheel files to select from
+ findBestMatches = versions: candidates:
+ let
+ v = lib.lists.head versions;
+ vs = lib.lists.tail versions;
+ in
+ if (builtins.length versions == 0)
+ then [ ]
+ else (builtins.filter (x: hasInfix v x.file) candidates) ++ (findBestMatches vs candidates);
+
+ # pyver = "cpXX"
+ # x = "cpXX" | "py2" | "py3" | "py2.py3"
+ isPyVersionCompatible = pyver: x:
+ let
+ normalize = y: ''cp${lib.strings.removePrefix "cp" (lib.strings.removePrefix "py" y)}'';
+ isCompat = p: x: lib.strings.hasPrefix (normalize x) p;
+ in
+ lib.lists.any (isCompat pyver) (lib.strings.splitString "." x);
+
+ #
+ # Selects the best matching wheel file from a list of files
+ #
+ selectWheel = files:
+ let
+ filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files);
+ isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || lib.hasPrefix x pyabi || (
+ # The CPython stable ABI is abi3 as in the shared library suffix.
+ python.passthru.implementation == "cpython" &&
+ builtins.elemAt (lib.splitString "." python.version) 0 == "3" &&
+ x == "abi3"
+ );
+ withPython = ver: abi: x: (isPyVersionCompatible ver x.pyVer) && (isPyAbiCompatible abi x.abi);
+ withPlatform =
+ if isLinux
+ then
+ (
+ x: x.platform == "manylinux1_${stdenv.platform.kernelArch}"
+ || x.platform == "manylinux2010_${stdenv.platform.kernelArch}"
+ || x.platform == "manylinux2014_${stdenv.platform.kernelArch}"
+ || x.platform == "any"
+ )
+ else (x: hasInfix "macosx" x.platform || x.platform == "any");
+ filterWheel = x:
+ let
+ f = toWheelAttrs x.file;
+ in
+ (withPython pythonTag abiTag f) && (withPlatform f);
+ filtered = builtins.filter filterWheel filesWithoutSources;
+ choose = files:
+ let
+ osxMatches = [ "10_12" "10_11" "10_10" "10_9" "any" ];
+ linuxMatches = [ "manylinux1_" "manylinux2010_" "manylinux2014_" "any" ];
+ chooseLinux = x: lib.take 1 (findBestMatches linuxMatches x);
+ chooseOSX = x: lib.take 1 (findBestMatches osxMatches x);
+ in
+ if isLinux
+ then chooseLinux files
+ else chooseOSX files;
+ in
+ if (builtins.length filtered == 0)
+ then [ ]
+ else choose (filtered);
+in
+{
+ inherit selectWheel toWheelAttrs isPyVersionCompatible;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
new file mode 100644
index 000000000000..ba8145398f5d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep508.nix
@@ -0,0 +1,255 @@
+{ lib, stdenv, poetryLib }: python:
+let
+ inherit (poetryLib) ireplace;
+
+ # Like builtins.substring but with stop being offset instead of length
+ substr = start: stop: s: builtins.substring start (stop - start) s;
+
+ # Strip leading/trailing whitespace from string
+ stripStr = s: lib.elemAt (builtins.split "^ *" (lib.elemAt (builtins.split " *$" s) 0)) 2;
+ findSubExpressionsFun = acc: c: (
+ if c == "(" then
+ (
+ let
+ posNew = acc.pos + 1;
+ isOpen = acc.openP == 0;
+ startPos = if isOpen then posNew else acc.startPos;
+ in
+ acc // {
+ inherit startPos;
+ exprs = acc.exprs ++ [ (substr acc.exprPos (acc.pos - 1) acc.expr) ];
+ pos = posNew;
+ openP = acc.openP + 1;
+ }
+ ) else if c == ")" then
+ (
+ let
+ openP = acc.openP - 1;
+ exprs = findSubExpressions (substr acc.startPos acc.pos acc.expr);
+ in
+ acc // {
+ inherit openP;
+ pos = acc.pos + 1;
+ exprs = if openP == 0 then acc.exprs ++ [ exprs ] else acc.exprs;
+ exprPos = if openP == 0 then acc.pos + 1 else acc.exprPos;
+ }
+ ) else acc // { pos = acc.pos + 1; }
+ );
+
+ # Make a tree out of expression groups (parens)
+ findSubExpressions = expr':
+ let
+ expr = " " + expr';
+ acc = builtins.foldl'
+ findSubExpressionsFun
+ {
+ exprs = [ ];
+ expr = expr;
+ pos = 0;
+ openP = 0;
+ exprPos = 0;
+ startPos = 0;
+ }
+ (lib.stringToCharacters expr);
+ tailExpr = (substr acc.exprPos acc.pos expr);
+ tailExprs = if tailExpr != "" then [ tailExpr ] else [ ];
+ in
+ acc.exprs ++ tailExprs;
+ parseExpressions = exprs:
+ let
+ splitCond = (
+ s: builtins.map
+ (x: stripStr (if builtins.typeOf x == "list" then (builtins.elemAt x 0) else x))
+ (builtins.split " (and|or) " (s + " "))
+ );
+ mapfn = expr: (
+ if (builtins.match "^ ?$" expr != null) then null # Filter empty
+ else if (builtins.elem expr [ "and" "or" ]) then {
+ type = "bool";
+ value = expr;
+ }
+ else {
+ type = "expr";
+ value = expr;
+ }
+ );
+ parse = expr: builtins.filter (x: x != null) (builtins.map mapfn (splitCond expr));
+ in
+ builtins.foldl'
+ (
+ acc: v: acc ++ (if builtins.typeOf v == "string" then parse v else [ (parseExpressions v) ])
+ ) [ ]
+ exprs;
+
+ # Transform individual expressions to structured expressions
+ # This function also performs variable substitution, replacing environment markers with their explicit values
+ transformExpressions = exprs:
+ let
+ variables = {
+ os_name = (
+ if python.pname == "jython" then "java"
+ else "posix"
+ );
+ sys_platform = (
+ if stdenv.isLinux then "linux"
+ else if stdenv.isDarwin then "darwin"
+ else throw "Unsupported platform"
+ );
+ platform_machine = stdenv.platform.kernelArch;
+ platform_python_implementation =
+ let
+ impl = python.passthru.implementation;
+ in
+ (
+ if impl == "cpython" then "CPython"
+ else if impl == "pypy" then "PyPy"
+ else throw "Unsupported implementation ${impl}"
+ );
+ platform_release = ""; # Field not reproducible
+ platform_system = (
+ if stdenv.isLinux then "Linux"
+ else if stdenv.isDarwin then "Darwin"
+ else throw "Unsupported platform"
+ );
+ platform_version = ""; # Field not reproducible
+ python_version = python.passthru.pythonVersion;
+ python_full_version = python.version;
+ implementation_name = python.implementation;
+ implementation_version = python.version;
+ # extra = "";
+ };
+ substituteVar = value: if builtins.hasAttr value variables then (builtins.toJSON variables."${value}") else value;
+ processVar = value: builtins.foldl' (acc: v: v acc) value [
+ stripStr
+ substituteVar
+ ];
+ in
+ if builtins.typeOf exprs == "set" then
+ (
+ if exprs.type == "expr" then
+ (
+ let
+ mVal = ''[a-zA-Z0-9\'"_\. ]+'';
+ mOp = "in|[!=<>]+";
+ e = stripStr exprs.value;
+ m = builtins.map stripStr (builtins.match ''^(${mVal}) *(${mOp}) *(${mVal})$'' e);
+ m0 = processVar (builtins.elemAt m 0);
+ m2 = processVar (builtins.elemAt m 2);
+ in
+ {
+ type = "expr";
+ value = {
+ # HACK: We don't know extra at eval time, so we assume the expression is always true
+ op = if m0 == "extra" then "true" else builtins.elemAt m 1;
+ values = [ m0 m2 ];
+ };
+ }
+ ) else exprs
+ ) else builtins.map transformExpressions exprs;
+
+ # Recursively eval all expressions
+ evalExpressions = exprs:
+ let
+ unmarshal = v: (
+ # TODO: Handle single quoted values
+ if v == "True" then true
+ else if v == "False" then false
+ else builtins.fromJSON v
+ );
+ hasElem = needle: haystack: builtins.elem needle (builtins.filter (x: builtins.typeOf x == "string") (builtins.split " " haystack));
+ op = {
+ "true" = x: y: true;
+ "<=" = x: y: (unmarshal x) <= (unmarshal y);
+ "<" = x: y: (unmarshal x) < (unmarshal y);
+ "!=" = x: y: x != y;
+ "==" = x: y: x == y;
+ ">=" = x: y: (unmarshal x) >= (unmarshal y);
+ ">" = x: y: (unmarshal x) > (unmarshal y);
+ "~=" = v: c:
+ let
+ parts = builtins.splitVersion c;
+ pruned = lib.take ((builtins.length parts) - 1) parts;
+ upper = builtins.toString (
+ (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+ );
+ upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
+ in
+ op.">=" v c && op."<" v upperConstraint;
+ "===" = x: y: x == y;
+ "in" = x: y:
+ let
+ values = builtins.filter (x: builtins.typeOf x == "string") (builtins.split " " (unmarshal y));
+ in
+ builtins.elem (unmarshal x) values;
+ };
+ in
+ if builtins.typeOf exprs == "set" then
+ (
+ if exprs.type == "expr" then
+ (
+ let
+ expr = exprs;
+ result = (op."${expr.value.op}") (builtins.elemAt expr.value.values 0) (builtins.elemAt expr.value.values 1);
+ in
+ {
+ type = "value";
+ value = result;
+ }
+ ) else exprs
+ ) else builtins.map evalExpressions exprs;
+
+ # Now that we have performed an eval all that's left to do is to concat the graph into a single bool
+ reduceExpressions = exprs:
+ let
+ cond = {
+ "and" = x: y: x && y;
+ "or" = x: y: x || y;
+ };
+ reduceExpressionsFun = acc: v: (
+ if builtins.typeOf v == "set" then
+ (
+ if v.type == "value" then
+ (
+ acc // {
+ value = cond."${acc.cond}" acc.value v.value;
+ }
+ ) else if v.type == "bool" then
+ (
+ acc // {
+ cond = v.value;
+ }
+ ) else throw "Unsupported type"
+ ) else if builtins.typeOf v == "list" then
+ (
+ let
+ ret = builtins.foldl'
+ reduceExpressionsFun
+ {
+ value = true;
+ cond = "and";
+ }
+ v;
+ in
+ acc // {
+ value = cond."${acc.cond}" acc.value ret.value;
+ }
+ ) else throw "Unsupported type"
+ );
+ in
+ (
+ builtins.foldl'
+ reduceExpressionsFun
+ {
+ value = true;
+ cond = "and";
+ }
+ exprs
+ ).value;
+in
+e: builtins.foldl' (acc: v: v acc) e [
+ findSubExpressions
+ parseExpressions
+ transformExpressions
+ evalExpressions
+ reduceExpressions
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
new file mode 100644
index 000000000000..f93eb119b20f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
@@ -0,0 +1,50 @@
+{ lib, poetry2nix, python, fetchFromGitHub }:
+
+
+poetry2nix.mkPoetryApplication {
+
+ inherit python;
+
+ projectDir = ./.;
+
+ # Don't include poetry in inputs
+ __isBootstrap = true;
+
+ src = fetchFromGitHub (lib.importJSON ./src.json);
+
+ # "Vendor" dependencies (for build-system support)
+ postPatch = ''
+ echo "import sys" >> poetry/__init__.py
+ for path in ''${PYTHONPATH//:/ }; do echo $path; done | uniq | while read path; do
+ echo "sys.path.insert(0, \"$path\")" >> poetry/__init__.py
+ done
+ '';
+
+ postInstall = ''
+ # Figure out the location of poetry.core
+ # As poetry.core is using the same root import name as the poetry package and the python module system wont look for the root
+ # in the separate second location we need to link poetry.core to poetry
+ ln -s $(python -c 'import poetry.core; import os.path; print(os.path.dirname(poetry.core.__file__))') $out/${python.sitePackages}/poetry/core
+
+ mkdir -p "$out/share/bash-completion/completions"
+ "$out/bin/poetry" completions bash > "$out/share/bash-completion/completions/poetry"
+ mkdir -p "$out/share/zsh/vendor-completions"
+ "$out/bin/poetry" completions zsh > "$out/share/zsh/vendor-completions/_poetry"
+ mkdir -p "$out/share/fish/vendor_completions.d"
+ "$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish"
+ '';
+
+ # Propagating dependencies leads to issues downstream
+ # We've already patched poetry to prefer "vendored" dependencies
+ postFixup = ''
+ rm $out/nix-support/propagated-build-inputs
+ '';
+
+ # Fails because of impurities (network, git etc etc)
+ doCheck = false;
+
+ meta = with lib; {
+ inherit (python.meta) platforms;
+ maintainers = with maintainers; [ adisbladis jakewaksbaum ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
new file mode 100644
index 000000000000..973733a6d617
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -0,0 +1,1419 @@
+[[package]]
+name = "appdirs"
+version = "1.4.4"
+description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "atomicwrites"
+version = "1.4.0"
+description = "Atomic file writes."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "attrs"
+version = "20.2.0"
+description = "Classes Without Boilerplate"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.extras]
+dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "sphinx", "sphinx-rtd-theme", "pre-commit"]
+docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"]
+tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
+tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six"]
+
+[[package]]
+name = "backports.functools-lru-cache"
+version = "1.6.1"
+description = "Backport of functools.lru_cache"
+category = "dev"
+optional = false
+python-versions = ">=2.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
+
+[[package]]
+name = "cachecontrol"
+version = "0.12.6"
+description = "httplib2 caching for requests"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+lockfile = {version = ">=0.9", optional = true, markers = "extra == \"filecache\""}
+msgpack = ">=0.5.2"
+requests = "*"
+
+[package.extras]
+filecache = ["lockfile (>=0.9)"]
+redis = ["redis (>=2.10.5)"]
+
+[[package]]
+name = "cachy"
+version = "0.3.0"
+description = "Cachy provides a simple yet effective caching library."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.extras]
+redis = ["redis (>=3.3.6,<4.0.0)"]
+memcached = ["python-memcached (>=1.59,<2.0)"]
+msgpack = ["msgpack-python (>=0.5,<0.6)"]
+
+[[package]]
+name = "certifi"
+version = "2020.6.20"
+description = "Python package for providing Mozilla's CA Bundle."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "cffi"
+version = "1.14.3"
+description = "Foreign Function Interface for Python calling C code."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+pycparser = "*"
+
+[[package]]
+name = "cfgv"
+version = "3.2.0"
+description = "Validate configuration and produce human readable error messages."
+category = "dev"
+optional = false
+python-versions = ">=3.6.1"
+
+[[package]]
+name = "chardet"
+version = "3.0.4"
+description = "Universal encoding detector for Python 2 and 3"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "cleo"
+version = "0.8.1"
+description = "Cleo allows you to create beautiful and testable command-line interfaces."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+clikit = ">=0.6.0,<0.7.0"
+
+[[package]]
+name = "clikit"
+version = "0.6.2"
+description = "CliKit is a group of utilities to build beautiful and testable command line interfaces."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+crashtest = {version = ">=0.3.0,<0.4.0", markers = "python_version >= \"3.6\" and python_version < \"4.0\""}
+enum34 = {version = ">=1.1,<2.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+pastel = ">=0.2.0,<0.3.0"
+pylev = ">=1.3,<2.0"
+typing = {version = ">=3.6,<4.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\""}
+typing-extensions = {version = ">=3.6,<4.0", markers = "python_version >= \"3.5\" and python_full_version < \"3.5.4\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.3"
+description = "Cross-platform colored terminal text."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "configparser"
+version = "4.0.2"
+description = "Updated configparser from Python 3.7 for Python 2.6+."
+category = "main"
+optional = false
+python-versions = ">=2.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2)", "pytest-flake8", "pytest-black-multipy"]
+
+[[package]]
+name = "contextlib2"
+version = "0.6.0.post1"
+description = "Backports and enhancements for the contextlib module"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "coverage"
+version = "5.3"
+description = "Code coverage measurement for Python"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+
+[package.extras]
+toml = ["toml"]
+
+[[package]]
+name = "crashtest"
+version = "0.3.1"
+description = "Manage Python errors with ease"
+category = "main"
+optional = false
+python-versions = ">=3.6,<4.0"
+
+[[package]]
+name = "cryptography"
+version = "3.1.1"
+description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
+category = "main"
+optional = false
+python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
+
+[package.dependencies]
+cffi = ">=1.8,<1.11.3 || >1.11.3"
+enum34 = {version = "*", markers = "python_version < \"3\""}
+ipaddress = {version = "*", markers = "python_version < \"3\""}
+six = ">=1.4.1"
+
+[package.extras]
+docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"]
+docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
+pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
+ssh = ["bcrypt (>=3.1.5)"]
+test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"]
+
+[[package]]
+name = "distlib"
+version = "0.3.1"
+description = "Distribution utilities"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "entrypoints"
+version = "0.3"
+description = "Discover and load entry points from installed packages."
+category = "main"
+optional = false
+python-versions = ">=2.7"
+
+[package.dependencies]
+configparser = {version = ">=3.5", markers = "python_version == \"2.7\""}
+
+[[package]]
+name = "enum34"
+version = "1.1.10"
+description = "Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "filelock"
+version = "3.0.12"
+description = "A platform independent file lock."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "funcsigs"
+version = "1.0.2"
+description = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "functools32"
+version = "3.2.3-2"
+description = "Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "futures"
+version = "3.3.0"
+description = "Backport of the concurrent.futures package from Python 3"
+category = "main"
+optional = false
+python-versions = ">=2.6, <3"
+
+[[package]]
+name = "glob2"
+version = "0.6"
+description = "Version of the glob module that can capture patterns and supports recursive wildcards"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "html5lib"
+version = "1.1"
+description = "HTML parser based on the WHATWG HTML specification"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+six = ">=1.9"
+webencodings = "*"
+
+[package.extras]
+all = ["genshi", "chardet (>=2.2)", "lxml"]
+chardet = ["chardet (>=2.2)"]
+genshi = ["genshi"]
+lxml = ["lxml"]
+
+[[package]]
+name = "httpretty"
+version = "0.9.7"
+description = "HTTP client mock for Python"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "identify"
+version = "1.5.5"
+description = "File identification library for Python"
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
+
+[package.extras]
+license = ["editdistance"]
+
+[[package]]
+name = "idna"
+version = "2.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "importlib-metadata"
+version = "1.7.0"
+description = "Read metadata from Python packages"
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.dependencies]
+configparser = {version = ">=3.5", markers = "python_version < \"3\""}
+contextlib2 = {version = "*", markers = "python_version < \"3\""}
+pathlib2 = {version = "*", markers = "python_version < \"3\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "rst.linker"]
+testing = ["packaging", "pep517", "importlib-resources (>=1.3)"]
+
+[[package]]
+name = "importlib-resources"
+version = "3.0.0"
+description = "Read resources from Python packages"
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.dependencies]
+contextlib2 = {version = "*", markers = "python_version < \"3\""}
+pathlib2 = {version = "*", markers = "python_version < \"3\""}
+singledispatch = {version = "*", markers = "python_version < \"3.4\""}
+typing = {version = "*", markers = "python_version < \"3.5\""}
+zipp = {version = ">=0.4", markers = "python_version < \"3.8\""}
+
+[package.extras]
+docs = ["sphinx", "rst.linker", "jaraco.packaging"]
+
+[[package]]
+name = "ipaddress"
+version = "1.0.23"
+description = "IPv4/IPv6 manipulation library"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "jeepney"
+version = "0.4.3"
+description = "Low-level, pure Python DBus protocol wrapper."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.extras]
+dev = ["testpath"]
+
+[[package]]
+name = "keyring"
+version = "18.0.1"
+description = "Store and access your passwords safely."
+category = "main"
+optional = false
+python-versions = ">=2.7"
+
+[package.dependencies]
+entrypoints = "*"
+pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
+secretstorage = {version = "<3", markers = "(sys_platform == \"linux2\" or sys_platform == \"linux\") and python_version < \"3.5\""}
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs", "pytest-flake8"]
+
+[[package]]
+name = "keyring"
+version = "20.0.1"
+description = "Store and access your passwords safely."
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
+secretstorage = {version = "*", markers = "sys_platform == \"linux\""}
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov"]
+
+[[package]]
+name = "keyring"
+version = "21.4.0"
+description = "Store and access your passwords safely."
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""}
+pywin32-ctypes = {version = "<0.1.0 || >0.1.0,<0.1.1 || >0.1.1", markers = "sys_platform == \"win32\""}
+SecretStorage = {version = ">=3", markers = "sys_platform == \"linux\""}
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black (>=0.3.7)", "pytest-cov", "pytest-mypy"]
+
+[[package]]
+name = "lockfile"
+version = "0.12.2"
+description = "Platform-independent file locking module"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "mock"
+version = "3.0.5"
+description = "Rolling backport of unittest.mock for all Pythons"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+funcsigs = {version = ">=1", markers = "python_version < \"3.3\""}
+six = "*"
+
+[package.extras]
+build = ["twine", "wheel", "blurb"]
+docs = ["sphinx"]
+test = ["pytest", "pytest-cov"]
+
+[[package]]
+name = "more-itertools"
+version = "5.0.0"
+description = "More routines for operating on iterables, beyond itertools"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = ">=1.0.0,<2.0.0"
+
+[[package]]
+name = "more-itertools"
+version = "8.5.0"
+description = "More routines for operating on iterables, beyond itertools"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[[package]]
+name = "msgpack"
+version = "1.0.0"
+description = "MessagePack (de)serializer."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "nodeenv"
+version = "1.5.0"
+description = "Node.js virtual environment builder"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "packaging"
+version = "20.4"
+description = "Core utilities for Python packages"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+pyparsing = ">=2.0.2"
+six = "*"
+
+[[package]]
+name = "pastel"
+version = "0.2.1"
+description = "Bring colors to your terminal."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pathlib2"
+version = "2.3.5"
+description = "Object-oriented filesystem paths"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+scandir = {version = "*", markers = "python_version < \"3.5\""}
+six = "*"
+
+[[package]]
+name = "pexpect"
+version = "4.8.0"
+description = "Pexpect allows easy control of interactive console applications."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+ptyprocess = ">=0.5"
+
+[[package]]
+name = "pkginfo"
+version = "1.5.0.1"
+description = "Query metadatdata from sdists / bdists / installed packages."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.extras]
+testing = ["nose", "coverage"]
+
+[[package]]
+name = "pluggy"
+version = "0.13.1"
+description = "plugin and hook calling mechanisms for python"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+
+[[package]]
+name = "poetry-core"
+version = "1.0.0"
+description = "Poetry PEP 517 Build Backend"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+enum34 = {version = ">=1.1.10,<2.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+functools32 = {version = ">=3.2.3-2,<4.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+importlib-metadata = {version = ">=1.7.0,<2.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.5\" and python_version < \"3.8\""}
+pathlib2 = {version = ">=2.3.5,<3.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+typing = {version = ">=3.7.4.1,<4.0.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+
+[[package]]
+name = "pre-commit"
+version = "2.7.1"
+description = "A framework for managing and maintaining multi-language pre-commit hooks."
+category = "dev"
+optional = false
+python-versions = ">=3.6.1"
+
+[package.dependencies]
+cfgv = ">=2.0.0"
+identify = ">=1.0.0"
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+importlib-resources = {version = "*", markers = "python_version < \"3.7\""}
+nodeenv = ">=0.11.1"
+pyyaml = ">=5.1"
+toml = "*"
+virtualenv = ">=20.0.8"
+
+[[package]]
+name = "ptyprocess"
+version = "0.6.0"
+description = "Run a subprocess in a pseudo terminal"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "py"
+version = "1.9.0"
+description = "library with cross-python path, ini-parsing, io, code, log facilities"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pycparser"
+version = "2.20"
+description = "C parser in Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "pylev"
+version = "1.3.0"
+description = "A pure Python Levenshtein implementation that's not freaking GPL'd."
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "pyparsing"
+version = "2.4.7"
+description = "Python parsing module"
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "pytest"
+version = "4.6.11"
+description = "pytest: simple powerful testing with Python"
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
+
+[package.dependencies]
+atomicwrites = ">=1.0"
+attrs = ">=17.4.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\" and python_version != \"3.4\""}
+funcsigs = {version = ">=1.0", markers = "python_version < \"3.0\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+more-itertools = [
+ {version = ">=4.0.0,<6.0.0", markers = "python_version <= \"2.7\""},
+ {version = ">=4.0.0", markers = "python_version > \"2.7\""},
+]
+packaging = "*"
+pathlib2 = {version = ">=2.2.0", markers = "python_version < \"3.6\""}
+pluggy = ">=0.12,<1.0"
+py = ">=1.5.0"
+six = ">=1.10.0"
+wcwidth = "*"
+
+[package.extras]
+testing = ["argcomplete", "hypothesis (>=3.56)", "nose", "requests", "mock"]
+
+[[package]]
+name = "pytest"
+version = "5.4.3"
+description = "pytest: simple powerful testing with Python"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
+attrs = ">=17.4.0"
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+more-itertools = ">=4.0.0"
+packaging = "*"
+pathlib2 = {version = ">=2.2.0", markers = "python_version < \"3.6\""}
+pluggy = ">=0.12,<1.0"
+py = ">=1.5.0"
+wcwidth = "*"
+
+[package.extras]
+checkqa-mypy = ["mypy (v0.761)"]
+testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
+
+[[package]]
+name = "pytest-cov"
+version = "2.10.1"
+description = "Pytest plugin for measuring coverage."
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+coverage = ">=4.4"
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"]
+
+[[package]]
+name = "pytest-mock"
+version = "1.13.0"
+description = "Thin-wrapper around the mock package for easier use with py.test"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[package.dependencies]
+mock = {version = "*", markers = "python_version < \"3.0\""}
+pytest = ">=2.7"
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+
+[[package]]
+name = "pytest-sugar"
+version = "0.9.4"
+description = "pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly)."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+packaging = ">=14.1"
+pytest = ">=2.9"
+termcolor = ">=1.1.0"
+
+[[package]]
+name = "pywin32-ctypes"
+version = "0.2.0"
+description = ""
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "pyyaml"
+version = "5.3.1"
+description = "YAML parser and emitter for Python"
+category = "dev"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[[package]]
+name = "requests"
+version = "2.24.0"
+description = "Python HTTP for Humans."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+chardet = ">=3.0.2,<4"
+idna = ">=2.5,<3"
+urllib3 = ">=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26"
+
+[package.extras]
+security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"]
+socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7)", "win-inet-pton"]
+
+[[package]]
+name = "requests-toolbelt"
+version = "0.9.1"
+description = "A utility belt for advanced users of python-requests"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+requests = ">=2.0.1,<3.0.0"
+
+[[package]]
+name = "scandir"
+version = "1.10.0"
+description = "scandir, a better directory iterator and faster os.walk()"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "secretstorage"
+version = "2.3.1"
+description = "Python bindings to FreeDesktop.org Secret Service API"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+cryptography = "*"
+
+[package.extras]
+dbus-python = ["dbus-python"]
+
+[[package]]
+name = "secretstorage"
+version = "3.1.2"
+description = "Python bindings to FreeDesktop.org Secret Service API"
+category = "main"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+cryptography = "*"
+jeepney = ">=0.4.2"
+
+[[package]]
+name = "shellingham"
+version = "1.3.2"
+description = "Tool to Detect Surrounding Shell"
+category = "main"
+optional = false
+python-versions = "!=3.0,!=3.1,!=3.2,!=3.3,>=2.6"
+
+[[package]]
+name = "singledispatch"
+version = "3.4.0.3"
+description = "This library brings functools.singledispatch from Python 3.4 to Python 2.6-3.3."
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "six"
+version = "1.15.0"
+description = "Python 2 and 3 compatibility utilities"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+
+[[package]]
+name = "subprocess32"
+version = "3.5.4"
+description = "A backport of the subprocess module from Python 3 for use on 2.x."
+category = "main"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4"
+
+[[package]]
+name = "termcolor"
+version = "1.1.0"
+description = "ANSII Color formatting for output in terminal."
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "toml"
+version = "0.10.1"
+description = "Python Library for Tom's Obvious, Minimal Language"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "tomlkit"
+version = "0.7.0"
+description = "Style preserving TOML library"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+
+[package.dependencies]
+enum34 = {version = ">=1.1,<2.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+functools32 = {version = ">=3.2.3,<4.0.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\""}
+typing = {version = ">=3.6,<4.0", markers = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\""}
+
+[[package]]
+name = "tox"
+version = "3.20.0"
+description = "tox is a generic virtualenv management and test command line tool"
+category = "dev"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.dependencies]
+colorama = {version = ">=0.4.1", markers = "platform_system == \"Windows\""}
+filelock = ">=3.0.0"
+importlib-metadata = {version = ">=0.12,<2", markers = "python_version < \"3.8\""}
+packaging = ">=14"
+pluggy = ">=0.12.0"
+py = ">=1.4.17"
+six = ">=1.14.0"
+toml = ">=0.9.4"
+virtualenv = ">=16.0.0,<20.0.0 || >20.0.0,<20.0.1 || >20.0.1,<20.0.2 || >20.0.2,<20.0.3 || >20.0.3,<20.0.4 || >20.0.4,<20.0.5 || >20.0.5,<20.0.6 || >20.0.6,<20.0.7 || >20.0.7"
+
+[package.extras]
+docs = ["pygments-github-lexers (>=0.0.5)", "sphinx (>=2.0.0)", "sphinxcontrib-autoprogram (>=0.1.5)", "towncrier (>=18.5.0)"]
+testing = ["flaky (>=3.4.0)", "freezegun (>=0.3.11)", "pathlib2 (>=2.3.3)", "psutil (>=5.6.1)", "pytest (>=4.0.0)", "pytest-cov (>=2.5.1)", "pytest-mock (>=1.10.0)", "pytest-randomly (>=1.0.0)", "pytest-xdist (>=1.22.2)"]
+
+[[package]]
+name = "typing"
+version = "3.7.4.3"
+description = "Type Hints for Python"
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+
+[[package]]
+name = "typing-extensions"
+version = "3.7.4.3"
+description = "Backported and Experimental Type Hints for Python 3.5+"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+typing = {version = ">=3.7.4", markers = "python_version < \"3.5\""}
+
+[[package]]
+name = "urllib3"
+version = "1.25.10"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+category = "main"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
+
+[package.extras]
+brotli = ["brotlipy (>=0.6.0)"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "pyOpenSSL (>=0.14)", "ipaddress"]
+socks = ["PySocks (>=1.5.6,<1.5.7 || >1.5.7,<2.0)"]
+
+[[package]]
+name = "virtualenv"
+version = "20.0.31"
+description = "Virtual Python Environment builder"
+category = "main"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
+
+[package.dependencies]
+appdirs = ">=1.4.3,<2"
+distlib = ">=0.3.1,<1"
+filelock = ">=3.0.0,<4"
+importlib-metadata = {version = ">=0.12,<2", markers = "python_version < \"3.8\""}
+importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""}
+pathlib2 = {version = ">=2.3.3,<3", markers = "python_version < \"3.4\" and sys_platform != \"win32\""}
+six = ">=1.9.0,<2"
+
+[package.extras]
+docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"]
+testing = ["coverage (>=5)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-xdist (>=1.31.0)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
+
+[[package]]
+name = "wcwidth"
+version = "0.2.5"
+description = "Measures the displayed width of unicode strings in a terminal"
+category = "dev"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+"backports.functools-lru-cache" = {version = ">=1.2.1", markers = "python_version < \"3.2\""}
+
+[[package]]
+name = "webencodings"
+version = "0.5.1"
+description = "Character encoding aliases for legacy web content"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
+name = "zipp"
+version = "1.2.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "main"
+optional = false
+python-versions = ">=2.7"
+
+[package.dependencies]
+contextlib2 = {version = "*", markers = "python_version < \"3.4\""}
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"]
+
+[metadata]
+lock-version = "1.1"
+python-versions = "~2.7 || ^3.5"
+content-hash = "1e774c9d8b7f6812d721cff08b51554f9a0cd051e2ae0e884421bcb56718d131"
+
+[metadata.files]
+appdirs = [
+ {file = "appdirs-1.4.4-py2.py3-none-any.whl", hash = "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128"},
+ {file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
+]
+atomicwrites = [
+ {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
+ {file = "atomicwrites-1.4.0.tar.gz", hash = "sha256:ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a"},
+]
+attrs = [
+ {file = "attrs-20.2.0-py2.py3-none-any.whl", hash = "sha256:fce7fc47dfc976152e82d53ff92fa0407700c21acd20886a13777a0d20e655dc"},
+ {file = "attrs-20.2.0.tar.gz", hash = "sha256:26b54ddbbb9ee1d34d5d3668dd37d6cf74990ab23c828c2888dccdceee395594"},
+]
+"backports.functools-lru-cache" = [
+ {file = "backports.functools_lru_cache-1.6.1-py2.py3-none-any.whl", hash = "sha256:0bada4c2f8a43d533e4ecb7a12214d9420e66eb206d54bf2d682581ca4b80848"},
+ {file = "backports.functools_lru_cache-1.6.1.tar.gz", hash = "sha256:8fde5f188da2d593bd5bc0be98d9abc46c95bb8a9dde93429570192ee6cc2d4a"},
+]
+cachecontrol = [
+ {file = "CacheControl-0.12.6-py2.py3-none-any.whl", hash = "sha256:10d056fa27f8563a271b345207402a6dcce8efab7e5b377e270329c62471b10d"},
+ {file = "CacheControl-0.12.6.tar.gz", hash = "sha256:be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8"},
+]
+cachy = [
+ {file = "cachy-0.3.0-py2.py3-none-any.whl", hash = "sha256:338ca09c8860e76b275aff52374330efedc4d5a5e45dc1c5b539c1ead0786fe7"},
+ {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
+]
+certifi = [
+ {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
+ {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
+]
+cffi = [
+ {file = "cffi-1.14.3-2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc"},
+ {file = "cffi-1.14.3-2-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768"},
+ {file = "cffi-1.14.3-2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d"},
+ {file = "cffi-1.14.3-2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1"},
+ {file = "cffi-1.14.3-2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca"},
+ {file = "cffi-1.14.3-2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a"},
+ {file = "cffi-1.14.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c"},
+ {file = "cffi-1.14.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730"},
+ {file = "cffi-1.14.3-cp27-cp27m-win32.whl", hash = "sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d"},
+ {file = "cffi-1.14.3-cp27-cp27m-win_amd64.whl", hash = "sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05"},
+ {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b"},
+ {file = "cffi-1.14.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171"},
+ {file = "cffi-1.14.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f"},
+ {file = "cffi-1.14.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4"},
+ {file = "cffi-1.14.3-cp35-cp35m-win32.whl", hash = "sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d"},
+ {file = "cffi-1.14.3-cp35-cp35m-win_amd64.whl", hash = "sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d"},
+ {file = "cffi-1.14.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3"},
+ {file = "cffi-1.14.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808"},
+ {file = "cffi-1.14.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537"},
+ {file = "cffi-1.14.3-cp36-cp36m-win32.whl", hash = "sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0"},
+ {file = "cffi-1.14.3-cp36-cp36m-win_amd64.whl", hash = "sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e"},
+ {file = "cffi-1.14.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1"},
+ {file = "cffi-1.14.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579"},
+ {file = "cffi-1.14.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394"},
+ {file = "cffi-1.14.3-cp37-cp37m-win32.whl", hash = "sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc"},
+ {file = "cffi-1.14.3-cp37-cp37m-win_amd64.whl", hash = "sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869"},
+ {file = "cffi-1.14.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e"},
+ {file = "cffi-1.14.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828"},
+ {file = "cffi-1.14.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9"},
+ {file = "cffi-1.14.3-cp38-cp38-win32.whl", hash = "sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522"},
+ {file = "cffi-1.14.3-cp38-cp38-win_amd64.whl", hash = "sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15"},
+ {file = "cffi-1.14.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d"},
+ {file = "cffi-1.14.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c"},
+ {file = "cffi-1.14.3-cp39-cp39-win32.whl", hash = "sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b"},
+ {file = "cffi-1.14.3-cp39-cp39-win_amd64.whl", hash = "sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3"},
+ {file = "cffi-1.14.3.tar.gz", hash = "sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"},
+]
+cfgv = [
+ {file = "cfgv-3.2.0-py2.py3-none-any.whl", hash = "sha256:32e43d604bbe7896fe7c248a9c2276447dbef840feb28fe20494f62af110211d"},
+ {file = "cfgv-3.2.0.tar.gz", hash = "sha256:cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1"},
+]
+chardet = [
+ {file = "chardet-3.0.4-py2.py3-none-any.whl", hash = "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"},
+ {file = "chardet-3.0.4.tar.gz", hash = "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"},
+]
+cleo = [
+ {file = "cleo-0.8.1-py2.py3-none-any.whl", hash = "sha256:141cda6dc94a92343be626bb87a0b6c86ae291dfc732a57bf04310d4b4201753"},
+ {file = "cleo-0.8.1.tar.gz", hash = "sha256:3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f"},
+]
+clikit = [
+ {file = "clikit-0.6.2-py2.py3-none-any.whl", hash = "sha256:71268e074e68082306e23d7369a7b99f824a0ef926e55ba2665e911f7208489e"},
+ {file = "clikit-0.6.2.tar.gz", hash = "sha256:442ee5db9a14120635c5990bcdbfe7c03ada5898291f0c802f77be71569ded59"},
+]
+colorama = [
+ {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"},
+ {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"},
+]
+configparser = [
+ {file = "configparser-4.0.2-py2.py3-none-any.whl", hash = "sha256:254c1d9c79f60c45dfde850850883d5aaa7f19a23f13561243a050d5a7c3fe4c"},
+ {file = "configparser-4.0.2.tar.gz", hash = "sha256:c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df"},
+]
+contextlib2 = [
+ {file = "contextlib2-0.6.0.post1-py2.py3-none-any.whl", hash = "sha256:3355078a159fbb44ee60ea80abd0d87b80b78c248643b49aa6d94673b413609b"},
+ {file = "contextlib2-0.6.0.post1.tar.gz", hash = "sha256:01f490098c18b19d2bd5bb5dc445b2054d2fa97f09a4280ba2c5f3c394c8162e"},
+]
+coverage = [
+ {file = "coverage-5.3-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:bd3166bb3b111e76a4f8e2980fa1addf2920a4ca9b2b8ca36a3bc3dedc618270"},
+ {file = "coverage-5.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:9342dd70a1e151684727c9c91ea003b2fb33523bf19385d4554f7897ca0141d4"},
+ {file = "coverage-5.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:63808c30b41f3bbf65e29f7280bf793c79f54fb807057de7e5238ffc7cc4d7b9"},
+ {file = "coverage-5.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:4d6a42744139a7fa5b46a264874a781e8694bb32f1d76d8137b68138686f1729"},
+ {file = "coverage-5.3-cp27-cp27m-win32.whl", hash = "sha256:86e9f8cd4b0cdd57b4ae71a9c186717daa4c5a99f3238a8723f416256e0b064d"},
+ {file = "coverage-5.3-cp27-cp27m-win_amd64.whl", hash = "sha256:7858847f2d84bf6e64c7f66498e851c54de8ea06a6f96a32a1d192d846734418"},
+ {file = "coverage-5.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:530cc8aaf11cc2ac7430f3614b04645662ef20c348dce4167c22d99bec3480e9"},
+ {file = "coverage-5.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:381ead10b9b9af5f64646cd27107fb27b614ee7040bb1226f9c07ba96625cbb5"},
+ {file = "coverage-5.3-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:71b69bd716698fa62cd97137d6f2fdf49f534decb23a2c6fc80813e8b7be6822"},
+ {file = "coverage-5.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1d44bb3a652fed01f1f2c10d5477956116e9b391320c94d36c6bf13b088a1097"},
+ {file = "coverage-5.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:1c6703094c81fa55b816f5ae542c6ffc625fec769f22b053adb42ad712d086c9"},
+ {file = "coverage-5.3-cp35-cp35m-win32.whl", hash = "sha256:cedb2f9e1f990918ea061f28a0f0077a07702e3819602d3507e2ff98c8d20636"},
+ {file = "coverage-5.3-cp35-cp35m-win_amd64.whl", hash = "sha256:7f43286f13d91a34fadf61ae252a51a130223c52bfefb50310d5b2deb062cf0f"},
+ {file = "coverage-5.3-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:c851b35fc078389bc16b915a0a7c1d5923e12e2c5aeec58c52f4aa8085ac8237"},
+ {file = "coverage-5.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:aac1ba0a253e17889550ddb1b60a2063f7474155465577caa2a3b131224cfd54"},
+ {file = "coverage-5.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2b31f46bf7b31e6aa690d4c7a3d51bb262438c6dcb0d528adde446531d0d3bb7"},
+ {file = "coverage-5.3-cp36-cp36m-win32.whl", hash = "sha256:c5f17ad25d2c1286436761b462e22b5020d83316f8e8fcb5deb2b3151f8f1d3a"},
+ {file = "coverage-5.3-cp36-cp36m-win_amd64.whl", hash = "sha256:aef72eae10b5e3116bac6957de1df4d75909fc76d1499a53fb6387434b6bcd8d"},
+ {file = "coverage-5.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:e8caf961e1b1a945db76f1b5fa9c91498d15f545ac0ababbe575cfab185d3bd8"},
+ {file = "coverage-5.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:29a6272fec10623fcbe158fdf9abc7a5fa032048ac1d8631f14b50fbfc10d17f"},
+ {file = "coverage-5.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2d43af2be93ffbad25dd959899b5b809618a496926146ce98ee0b23683f8c51c"},
+ {file = "coverage-5.3-cp37-cp37m-win32.whl", hash = "sha256:c3888a051226e676e383de03bf49eb633cd39fc829516e5334e69b8d81aae751"},
+ {file = "coverage-5.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9669179786254a2e7e57f0ecf224e978471491d660aaca833f845b72a2df3709"},
+ {file = "coverage-5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516"},
+ {file = "coverage-5.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:582ddfbe712025448206a5bc45855d16c2e491c2dd102ee9a2841418ac1c629f"},
+ {file = "coverage-5.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0f313707cdecd5cd3e217fc68c78a960b616604b559e9ea60cc16795c4304259"},
+ {file = "coverage-5.3-cp38-cp38-win32.whl", hash = "sha256:78e93cc3571fd928a39c0b26767c986188a4118edc67bc0695bc7a284da22e82"},
+ {file = "coverage-5.3-cp38-cp38-win_amd64.whl", hash = "sha256:8f264ba2701b8c9f815b272ad568d555ef98dfe1576802ab3149c3629a9f2221"},
+ {file = "coverage-5.3-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:50691e744714856f03a86df3e2bff847c2acede4c191f9a1da38f088df342978"},
+ {file = "coverage-5.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:9361de40701666b034c59ad9e317bae95c973b9ff92513dd0eced11c6adf2e21"},
+ {file = "coverage-5.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:c1b78fb9700fc961f53386ad2fd86d87091e06ede5d118b8a50dea285a071c24"},
+ {file = "coverage-5.3-cp39-cp39-win32.whl", hash = "sha256:cb7df71de0af56000115eafd000b867d1261f786b5eebd88a0ca6360cccfaca7"},
+ {file = "coverage-5.3-cp39-cp39-win_amd64.whl", hash = "sha256:47a11bdbd8ada9b7ee628596f9d97fbd3851bd9999d398e9436bd67376dbece7"},
+ {file = "coverage-5.3.tar.gz", hash = "sha256:280baa8ec489c4f542f8940f9c4c2181f0306a8ee1a54eceba071a449fb870a0"},
+]
+crashtest = [
+ {file = "crashtest-0.3.1-py3-none-any.whl", hash = "sha256:300f4b0825f57688b47b6d70c6a31de33512eb2fa1ac614f780939aa0cf91680"},
+ {file = "crashtest-0.3.1.tar.gz", hash = "sha256:42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd"},
+]
+cryptography = [
+ {file = "cryptography-3.1.1-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:65beb15e7f9c16e15934569d29fb4def74ea1469d8781f6b3507ab896d6d8719"},
+ {file = "cryptography-3.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:983c0c3de4cb9fcba68fd3f45ed846eb86a2a8b8d8bc5bb18364c4d00b3c61fe"},
+ {file = "cryptography-3.1.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:e97a3b627e3cb63c415a16245d6cef2139cca18bb1183d1b9375a1c14e83f3b3"},
+ {file = "cryptography-3.1.1-cp27-cp27m-win32.whl", hash = "sha256:cb179acdd4ae1e4a5a160d80b87841b3d0e0be84af46c7bb2cd7ece57a39c4ba"},
+ {file = "cryptography-3.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:b372026ebf32fe2523159f27d9f0e9f485092e43b00a5adacf732192a70ba118"},
+ {file = "cryptography-3.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:680da076cad81cdf5ffcac50c477b6790be81768d30f9da9e01960c4b18a66db"},
+ {file = "cryptography-3.1.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:5d52c72449bb02dd45a773a203196e6d4fae34e158769c896012401f33064396"},
+ {file = "cryptography-3.1.1-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:f0e099fc4cc697450c3dd4031791559692dd941a95254cb9aeded66a7aa8b9bc"},
+ {file = "cryptography-3.1.1-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a7597ffc67987b37b12e09c029bd1dc43965f75d328076ae85721b84046e9ca7"},
+ {file = "cryptography-3.1.1-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:4549b137d8cbe3c2eadfa56c0c858b78acbeff956bd461e40000b2164d9167c6"},
+ {file = "cryptography-3.1.1-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:89aceb31cd5f9fc2449fe8cf3810797ca52b65f1489002d58fe190bfb265c536"},
+ {file = "cryptography-3.1.1-cp35-cp35m-win32.whl", hash = "sha256:559d622aef2a2dff98a892eef321433ba5bc55b2485220a8ca289c1ecc2bd54f"},
+ {file = "cryptography-3.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:451cdf60be4dafb6a3b78802006a020e6cd709c22d240f94f7a0696240a17154"},
+ {file = "cryptography-3.1.1-cp36-abi3-win32.whl", hash = "sha256:762bc5a0df03c51ee3f09c621e1cee64e3a079a2b5020de82f1613873d79ee70"},
+ {file = "cryptography-3.1.1-cp36-abi3-win_amd64.whl", hash = "sha256:b12e715c10a13ca1bd27fbceed9adc8c5ff640f8e1f7ea76416352de703523c8"},
+ {file = "cryptography-3.1.1-cp36-cp36m-win32.whl", hash = "sha256:21b47c59fcb1c36f1113f3709d37935368e34815ea1d7073862e92f810dc7499"},
+ {file = "cryptography-3.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:48ee615a779ffa749d7d50c291761dc921d93d7cf203dca2db663b4f193f0e49"},
+ {file = "cryptography-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:b2bded09c578d19e08bd2c5bb8fed7f103e089752c9cf7ca7ca7de522326e921"},
+ {file = "cryptography-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f99317a0fa2e49917689b8cf977510addcfaaab769b3f899b9c481bbd76730c2"},
+ {file = "cryptography-3.1.1-cp38-cp38-win32.whl", hash = "sha256:ab010e461bb6b444eaf7f8c813bb716be2d78ab786103f9608ffd37a4bd7d490"},
+ {file = "cryptography-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:99d4984aabd4c7182050bca76176ce2dbc9fa9748afe583a7865c12954d714ba"},
+ {file = "cryptography-3.1.1.tar.gz", hash = "sha256:9d9fc6a16357965d282dd4ab6531013935425d0dc4950df2e0cf2a1b1ac1017d"},
+]
+distlib = [
+ {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"},
+ {file = "distlib-0.3.1.zip", hash = "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1"},
+]
+entrypoints = [
+ {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
+ {file = "entrypoints-0.3.tar.gz", hash = "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451"},
+]
+enum34 = [
+ {file = "enum34-1.1.10-py2-none-any.whl", hash = "sha256:a98a201d6de3f2ab3db284e70a33b0f896fbf35f8086594e8c9e74b909058d53"},
+ {file = "enum34-1.1.10-py3-none-any.whl", hash = "sha256:c3858660960c984d6ab0ebad691265180da2b43f07e061c0f8dca9ef3cffd328"},
+ {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"},
+]
+filelock = [
+ {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"},
+ {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"},
+]
+funcsigs = [
+ {file = "funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"},
+ {file = "funcsigs-1.0.2.tar.gz", hash = "sha256:a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"},
+]
+functools32 = [
+ {file = "functools32-3.2.3-2.tar.gz", hash = "sha256:f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"},
+ {file = "functools32-3.2.3-2.zip", hash = "sha256:89d824aa6c358c421a234d7f9ee0bd75933a67c29588ce50aaa3acdf4d403fa0"},
+]
+futures = [
+ {file = "futures-3.3.0-py2-none-any.whl", hash = "sha256:49b3f5b064b6e3afc3316421a3f25f66c137ae88f068abbf72830170033c5e16"},
+ {file = "futures-3.3.0.tar.gz", hash = "sha256:7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794"},
+]
+glob2 = [
+ {file = "glob2-0.6.tar.gz", hash = "sha256:f5b0a686ff21f820c4d3f0c4edd216704cea59d79d00fa337e244a2f2ff83ed6"},
+]
+html5lib = [
+ {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"},
+ {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"},
+]
+httpretty = [
+ {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"},
+]
+identify = [
+ {file = "identify-1.5.5-py2.py3-none-any.whl", hash = "sha256:da683bfb7669fa749fc7731f378229e2dbf29a1d1337cbde04106f02236eb29d"},
+ {file = "identify-1.5.5.tar.gz", hash = "sha256:7c22c384a2c9b32c5cc891d13f923f6b2653aa83e2d75d8f79be240d6c86c4f4"},
+]
+idna = [
+ {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
+ {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
+]
+importlib-metadata = [
+ {file = "importlib_metadata-1.7.0-py2.py3-none-any.whl", hash = "sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070"},
+ {file = "importlib_metadata-1.7.0.tar.gz", hash = "sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83"},
+]
+importlib-resources = [
+ {file = "importlib_resources-3.0.0-py2.py3-none-any.whl", hash = "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7"},
+ {file = "importlib_resources-3.0.0.tar.gz", hash = "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3"},
+]
+ipaddress = [
+ {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"},
+ {file = "ipaddress-1.0.23.tar.gz", hash = "sha256:b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"},
+]
+jeepney = [
+ {file = "jeepney-0.4.3-py3-none-any.whl", hash = "sha256:d6c6b49683446d2407d2fe3acb7a368a77ff063f9182fe427da15d622adc24cf"},
+ {file = "jeepney-0.4.3.tar.gz", hash = "sha256:3479b861cc2b6407de5188695fa1a8d57e5072d7059322469b62628869b8e36e"},
+]
+keyring = [
+ {file = "keyring-18.0.1-py2.py3-none-any.whl", hash = "sha256:7b29ebfcf8678c4da531b2478a912eea01e80007e5ddca9ee0c7038cb3489ec6"},
+ {file = "keyring-18.0.1.tar.gz", hash = "sha256:67d6cc0132bd77922725fae9f18366bb314fd8f95ff4d323a4df41890a96a838"},
+ {file = "keyring-20.0.1-py2.py3-none-any.whl", hash = "sha256:c674f032424b4bffc62abeac5523ec49cc84aed07a480c3233e0baf618efc15c"},
+ {file = "keyring-20.0.1.tar.gz", hash = "sha256:963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d"},
+ {file = "keyring-21.4.0-py3-none-any.whl", hash = "sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d"},
+ {file = "keyring-21.4.0.tar.gz", hash = "sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466"},
+]
+lockfile = [
+ {file = "lockfile-0.12.2-py2.py3-none-any.whl", hash = "sha256:6c3cb24f344923d30b2785d5ad75182c8ea7ac1b6171b08657258ec7429d50fa"},
+ {file = "lockfile-0.12.2.tar.gz", hash = "sha256:6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"},
+]
+mock = [
+ {file = "mock-3.0.5-py2.py3-none-any.whl", hash = "sha256:d157e52d4e5b938c550f39eb2fd15610db062441a9c2747d3dbfa9298211d0f8"},
+ {file = "mock-3.0.5.tar.gz", hash = "sha256:83657d894c90d5681d62155c82bda9c1187827525880eda8ff5df4ec813437c3"},
+]
+more-itertools = [
+ {file = "more-itertools-5.0.0.tar.gz", hash = "sha256:38a936c0a6d98a38bcc2d03fdaaedaba9f412879461dd2ceff8d37564d6522e4"},
+ {file = "more_itertools-5.0.0-py2-none-any.whl", hash = "sha256:c0a5785b1109a6bd7fac76d6837fd1feca158e54e521ccd2ae8bfe393cc9d4fc"},
+ {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"},
+ {file = "more-itertools-8.5.0.tar.gz", hash = "sha256:6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20"},
+ {file = "more_itertools-8.5.0-py3-none-any.whl", hash = "sha256:9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c"},
+]
+msgpack = [
+ {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:cec8bf10981ed70998d98431cd814db0ecf3384e6b113366e7f36af71a0fca08"},
+ {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aa5c057eab4f40ec47ea6f5a9825846be2ff6bf34102c560bad5cad5a677c5be"},
+ {file = "msgpack-1.0.0-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:4233b7f86c1208190c78a525cd3828ca1623359ef48f78a6fea4b91bb995775a"},
+ {file = "msgpack-1.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:b3758dfd3423e358bbb18a7cccd1c74228dffa7a697e5be6cb9535de625c0dbf"},
+ {file = "msgpack-1.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:25b3bc3190f3d9d965b818123b7752c5dfb953f0d774b454fd206c18fe384fb8"},
+ {file = "msgpack-1.0.0-cp36-cp36m-win32.whl", hash = "sha256:e7bbdd8e2b277b77782f3ce34734b0dfde6cbe94ddb74de8d733d603c7f9e2b1"},
+ {file = "msgpack-1.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5dba6d074fac9b24f29aaf1d2d032306c27f04187651511257e7831733293ec2"},
+ {file = "msgpack-1.0.0-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:908944e3f038bca67fcfedb7845c4a257c7749bf9818632586b53bcf06ba4b97"},
+ {file = "msgpack-1.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:db685187a415f51d6b937257474ca72199f393dad89534ebbdd7d7a3b000080e"},
+ {file = "msgpack-1.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ea41c9219c597f1d2bf6b374d951d310d58684b5de9dc4bd2976db9e1e22c140"},
+ {file = "msgpack-1.0.0-cp37-cp37m-win32.whl", hash = "sha256:e35b051077fc2f3ce12e7c6a34cf309680c63a842db3a0616ea6ed25ad20d272"},
+ {file = "msgpack-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:5bea44181fc8e18eed1d0cd76e355073f00ce232ff9653a0ae88cb7d9e643322"},
+ {file = "msgpack-1.0.0-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c901e8058dd6653307906c5f157f26ed09eb94a850dddd989621098d347926ab"},
+ {file = "msgpack-1.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:271b489499a43af001a2e42f42d876bb98ccaa7e20512ff37ca78c8e12e68f84"},
+ {file = "msgpack-1.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7a22c965588baeb07242cb561b63f309db27a07382825fc98aecaf0827c1538e"},
+ {file = "msgpack-1.0.0-cp38-cp38-win32.whl", hash = "sha256:002a0d813e1f7b60da599bdf969e632074f9eec1b96cbed8fb0973a63160a408"},
+ {file = "msgpack-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:39c54fdebf5fa4dda733369012c59e7d085ebdfe35b6cf648f09d16708f1be5d"},
+ {file = "msgpack-1.0.0.tar.gz", hash = "sha256:9534d5cc480d4aff720233411a1f765be90885750b07df772380b34c10ecb5c0"},
+]
+nodeenv = [
+ {file = "nodeenv-1.5.0-py2.py3-none-any.whl", hash = "sha256:5304d424c529c997bc888453aeaa6362d242b6b4631e90f3d4bf1b290f1c84a9"},
+ {file = "nodeenv-1.5.0.tar.gz", hash = "sha256:ab45090ae383b716c4ef89e690c41ff8c2b257b85b309f01f3654df3d084bd7c"},
+]
+packaging = [
+ {file = "packaging-20.4-py2.py3-none-any.whl", hash = "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181"},
+ {file = "packaging-20.4.tar.gz", hash = "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"},
+]
+pastel = [
+ {file = "pastel-0.2.1-py2.py3-none-any.whl", hash = "sha256:4349225fcdf6c2bb34d483e523475de5bb04a5c10ef711263452cb37d7dd4364"},
+ {file = "pastel-0.2.1.tar.gz", hash = "sha256:e6581ac04e973cac858828c6202c1e1e81fee1dc7de7683f3e1ffe0bfd8a573d"},
+]
+pathlib2 = [
+ {file = "pathlib2-2.3.5-py2.py3-none-any.whl", hash = "sha256:0ec8205a157c80d7acc301c0b18fbd5d44fe655968f5d947b6ecef5290fc35db"},
+ {file = "pathlib2-2.3.5.tar.gz", hash = "sha256:6cd9a47b597b37cc57de1c05e56fb1a1c9cc9fab04fe78c29acd090418529868"},
+]
+pexpect = [
+ {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
+ {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
+]
+pkginfo = [
+ {file = "pkginfo-1.5.0.1-py2.py3-none-any.whl", hash = "sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32"},
+ {file = "pkginfo-1.5.0.1.tar.gz", hash = "sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb"},
+]
+pluggy = [
+ {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
+ {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
+]
+poetry-core = [
+ {file = "poetry-core-1.0.0.tar.gz", hash = "sha256:6a664ff389b9f45382536f8fa1611a0cb4d2de7c5a5c885db1f0c600cd11fbd5"},
+ {file = "poetry_core-1.0.0-py2.py3-none-any.whl", hash = "sha256:769288e0e1b88dfcceb3185728f0b7388b26d5f93d6c22d2dcae372da51d200d"},
+]
+pre-commit = [
+ {file = "pre_commit-2.7.1-py2.py3-none-any.whl", hash = "sha256:810aef2a2ba4f31eed1941fc270e72696a1ad5590b9751839c90807d0fff6b9a"},
+ {file = "pre_commit-2.7.1.tar.gz", hash = "sha256:c54fd3e574565fe128ecc5e7d2f91279772ddb03f8729645fa812fe809084a70"},
+]
+ptyprocess = [
+ {file = "ptyprocess-0.6.0-py2.py3-none-any.whl", hash = "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f"},
+ {file = "ptyprocess-0.6.0.tar.gz", hash = "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"},
+]
+py = [
+ {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"},
+ {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"},
+]
+pycparser = [
+ {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
+ {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+]
+pylev = [
+ {file = "pylev-1.3.0-py2.py3-none-any.whl", hash = "sha256:1d29a87beb45ebe1e821e7a3b10da2b6b2f4c79b43f482c2df1a1f748a6e114e"},
+ {file = "pylev-1.3.0.tar.gz", hash = "sha256:063910098161199b81e453025653ec53556c1be7165a9b7c50be2f4d57eae1c3"},
+]
+pyparsing = [
+ {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
+ {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+]
+pytest = [
+ {file = "pytest-4.6.11-py2.py3-none-any.whl", hash = "sha256:a00a7d79cbbdfa9d21e7d0298392a8dd4123316bfac545075e6f8f24c94d8c97"},
+ {file = "pytest-4.6.11.tar.gz", hash = "sha256:50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353"},
+ {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"},
+ {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"},
+]
+pytest-cov = [
+ {file = "pytest-cov-2.10.1.tar.gz", hash = "sha256:47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e"},
+ {file = "pytest_cov-2.10.1-py2.py3-none-any.whl", hash = "sha256:45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191"},
+]
+pytest-mock = [
+ {file = "pytest-mock-1.13.0.tar.gz", hash = "sha256:e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5"},
+ {file = "pytest_mock-1.13.0-py2.py3-none-any.whl", hash = "sha256:67e414b3caef7bff6fc6bd83b22b5bc39147e4493f483c2679bc9d4dc485a94d"},
+]
+pytest-sugar = [
+ {file = "pytest-sugar-0.9.4.tar.gz", hash = "sha256:b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3"},
+]
+pywin32-ctypes = [
+ {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
+ {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
+]
+pyyaml = [
+ {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
+ {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
+ {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
+ {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
+ {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
+ {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
+ {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
+ {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
+ {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
+ {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
+ {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
+]
+requests = [
+ {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
+ {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
+]
+requests-toolbelt = [
+ {file = "requests-toolbelt-0.9.1.tar.gz", hash = "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"},
+ {file = "requests_toolbelt-0.9.1-py2.py3-none-any.whl", hash = "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f"},
+]
+scandir = [
+ {file = "scandir-1.10.0-cp27-cp27m-win32.whl", hash = "sha256:92c85ac42f41ffdc35b6da57ed991575bdbe69db895507af88b9f499b701c188"},
+ {file = "scandir-1.10.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cb925555f43060a1745d0a321cca94bcea927c50114b623d73179189a4e100ac"},
+ {file = "scandir-1.10.0-cp34-cp34m-win32.whl", hash = "sha256:2c712840c2e2ee8dfaf36034080108d30060d759c7b73a01a52251cc8989f11f"},
+ {file = "scandir-1.10.0-cp34-cp34m-win_amd64.whl", hash = "sha256:2586c94e907d99617887daed6c1d102b5ca28f1085f90446554abf1faf73123e"},
+ {file = "scandir-1.10.0-cp35-cp35m-win32.whl", hash = "sha256:2b8e3888b11abb2217a32af0766bc06b65cc4a928d8727828ee68af5a967fa6f"},
+ {file = "scandir-1.10.0-cp35-cp35m-win_amd64.whl", hash = "sha256:8c5922863e44ffc00c5c693190648daa6d15e7c1207ed02d6f46a8dcc2869d32"},
+ {file = "scandir-1.10.0-cp36-cp36m-win32.whl", hash = "sha256:2ae41f43797ca0c11591c0c35f2f5875fa99f8797cb1a1fd440497ec0ae4b022"},
+ {file = "scandir-1.10.0-cp36-cp36m-win_amd64.whl", hash = "sha256:7d2d7a06a252764061a020407b997dd036f7bd6a175a5ba2b345f0a357f0b3f4"},
+ {file = "scandir-1.10.0-cp37-cp37m-win32.whl", hash = "sha256:67f15b6f83e6507fdc6fca22fedf6ef8b334b399ca27c6b568cbfaa82a364173"},
+ {file = "scandir-1.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:b24086f2375c4a094a6b51e78b4cf7ca16c721dcee2eddd7aa6494b42d6d519d"},
+ {file = "scandir-1.10.0.tar.gz", hash = "sha256:4d4631f6062e658e9007ab3149a9b914f3548cb38bfb021c64f39a025ce578ae"},
+]
+secretstorage = [
+ {file = "SecretStorage-2.3.1.tar.gz", hash = "sha256:3af65c87765323e6f64c83575b05393f9e003431959c9395d1791d51497f29b6"},
+ {file = "SecretStorage-3.1.2-py3-none-any.whl", hash = "sha256:b5ec909dde94d4ae2fa26af7c089036997030f0cf0a5cb372b4cccabd81c143b"},
+ {file = "SecretStorage-3.1.2.tar.gz", hash = "sha256:15da8a989b65498e29be338b3b279965f1b8f09b9668bd8010da183024c8bff6"},
+]
+shellingham = [
+ {file = "shellingham-1.3.2-py2.py3-none-any.whl", hash = "sha256:7f6206ae169dc1a03af8a138681b3f962ae61cc93ade84d0585cca3aaf770044"},
+ {file = "shellingham-1.3.2.tar.gz", hash = "sha256:576c1982bea0ba82fb46c36feb951319d7f42214a82634233f58b40d858a751e"},
+]
+singledispatch = [
+ {file = "singledispatch-3.4.0.3-py2.py3-none-any.whl", hash = "sha256:833b46966687b3de7f438c761ac475213e53b306740f1abfaa86e1d1aae56aa8"},
+ {file = "singledispatch-3.4.0.3.tar.gz", hash = "sha256:5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c"},
+]
+six = [
+ {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
+ {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
+]
+subprocess32 = [
+ {file = "subprocess32-3.5.4-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:88e37c1aac5388df41cc8a8456bb49ebffd321a3ad4d70358e3518176de3a56b"},
+ {file = "subprocess32-3.5.4.tar.gz", hash = "sha256:eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d"},
+]
+termcolor = [
+ {file = "termcolor-1.1.0.tar.gz", hash = "sha256:1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b"},
+]
+toml = [
+ {file = "toml-0.10.1-py2.py3-none-any.whl", hash = "sha256:bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88"},
+ {file = "toml-0.10.1.tar.gz", hash = "sha256:926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f"},
+]
+tomlkit = [
+ {file = "tomlkit-0.7.0-py2.py3-none-any.whl", hash = "sha256:6babbd33b17d5c9691896b0e68159215a9387ebfa938aa3ac42f4a4beeb2b831"},
+ {file = "tomlkit-0.7.0.tar.gz", hash = "sha256:ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618"},
+]
+tox = [
+ {file = "tox-3.20.0-py2.py3-none-any.whl", hash = "sha256:e6318f404aff16522ff5211c88cab82b39af121735a443674e4e2e65f4e4637b"},
+ {file = "tox-3.20.0.tar.gz", hash = "sha256:eb629ddc60e8542fd4a1956b2462e3b8771d49f1ff630cecceacaa0fbfb7605a"},
+]
+typing = [
+ {file = "typing-3.7.4.3-py2-none-any.whl", hash = "sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5"},
+ {file = "typing-3.7.4.3.tar.gz", hash = "sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9"},
+]
+typing-extensions = [
+ {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"},
+ {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"},
+ {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"},
+]
+urllib3 = [
+ {file = "urllib3-1.25.10-py2.py3-none-any.whl", hash = "sha256:e7983572181f5e1522d9c98453462384ee92a0be7fac5f1413a1e35c56cc0461"},
+ {file = "urllib3-1.25.10.tar.gz", hash = "sha256:91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a"},
+]
+virtualenv = [
+ {file = "virtualenv-20.0.31-py2.py3-none-any.whl", hash = "sha256:e0305af10299a7fb0d69393d8f04cb2965dda9351140d11ac8db4e5e3970451b"},
+ {file = "virtualenv-20.0.31.tar.gz", hash = "sha256:43add625c53c596d38f971a465553f6318decc39d98512bc100fa1b1e839c8dc"},
+]
+wcwidth = [
+ {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
+ {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
+]
+webencodings = [
+ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
+ {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
+]
+zipp = [
+ {file = "zipp-1.2.0-py2.py3-none-any.whl", hash = "sha256:e0d9e63797e483a30d27e09fffd308c59a700d365ec34e93cc100844168bf921"},
+ {file = "zipp-1.2.0.tar.gz", hash = "sha256:c70410551488251b0fee67b460fb9a536af8d6f9f008ad10ac51f615b6a521b1"},
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
new file mode 100644
index 000000000000..f099a4cac805
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -0,0 +1,115 @@
+[tool.poetry]
+name = "poetry"
+version = "1.1.0"
+description = "Python dependency management and packaging made easy."
+authors = [
+ "Sébastien Eustace <sebastien@eustace.io>"
+]
+license = "MIT"
+
+readme = "README.md"
+
+homepage = "https://python-poetry.org/"
+repository = "https://github.com/python-poetry/poetry"
+documentation = "https://python-poetry.org/docs"
+
+keywords = ["packaging", "dependency", "poetry"]
+
+classifiers = [
+ "Topic :: Software Development :: Build Tools",
+ "Topic :: Software Development :: Libraries :: Python Modules"
+]
+
+# Requirements
+[tool.poetry.dependencies]
+python = "~2.7 || ^3.5"
+
+poetry-core = "^1.0.0"
+cleo = "^0.8.1"
+clikit = "^0.6.2"
+crashtest = { version = "^0.3.0", python = "^3.6" }
+requests = "^2.18"
+cachy = "^0.3.0"
+requests-toolbelt = "^0.9.1"
+cachecontrol = { version = "^0.12.4", extras = ["filecache"] }
+pkginfo = "^1.4"
+html5lib = "^1.0"
+shellingham = "^1.1"
+tomlkit = ">=0.7.0,<1.0.0"
+pexpect = "^4.7.0"
+packaging = "^20.4"
+virtualenv = { version = "^20.0.26" }
+
+# The typing module is not in the stdlib in Python 2.7
+typing = { version = "^3.6", python = "~2.7" }
+
+# Use pathlib2 for Python 2.7
+pathlib2 = { version = "^2.3", python = "~2.7" }
+# Use futures on Python 2.7
+futures = { version = "^3.3.0", python = "~2.7" }
+# Use glob2 for Python 2.7 and 3.4
+glob2 = { version = "^0.6", python = "~2.7" }
+# functools32 is needed for Python 2.7
+functools32 = { version = "^3.2.3", python = "~2.7" }
+keyring = [
+ { version = "^18.0.1", python = "~2.7" },
+ { version = "^20.0.1", python = "~3.5" },
+ { version = "^21.2.0", python = "^3.6" }
+]
+# Use subprocess32 for Python 2.7
+subprocess32 = { version = "^3.5", python = "~2.7" }
+importlib-metadata = {version = "^1.6.0", python = "<3.8"}
+
+[tool.poetry.dev-dependencies]
+pytest = [
+ {version = "^4.1", python = "<3.5"},
+ {version = "^5.4.3", python = ">=3.5"}
+]
+pytest-cov = "^2.5"
+pytest-mock = "^1.9"
+pre-commit = { version = "^2.6", python = "^3.6.1" }
+tox = "^3.0"
+pytest-sugar = "^0.9.2"
+httpretty = "^0.9.6"
+
+[tool.poetry.scripts]
+poetry = "poetry.console:main"
+
+
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
+
+
+[tool.isort]
+profile = "black"
+force_single_line = true
+atomic = true
+include_trailing_comma = true
+lines_after_imports = 2
+lines_between_types = 1
+use_parentheses = true
+src_paths = ["poetry", "tests"]
+skip_glob = ["*/setup.py"]
+filter_files = true
+known_first_party = "poetry"
+
+
+[tool.black]
+line-length = 88
+include = '\.pyi?$'
+exclude = '''
+/(
+ \.eggs
+ | \.git
+ | \.hg
+ | \.mypy_cache
+ | \.tox
+ | \.venv
+ | _build
+ | buck-out
+ | build
+ | dist
+ | tests/.*/setup.py
+)/
+'''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
new file mode 100644
index 000000000000..51894768c1d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -0,0 +1,7 @@
+{
+ "owner": "python-poetry",
+ "repo": "poetry",
+ "rev": "539d7f732c34c821258a9853cd3078cbda34a717",
+ "sha256": "0kl23dkq9n112z1pqjg6f1wv3qk77ij6q5glg15lwrj7yrl9k65c",
+ "fetchSubmodules": true
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
new file mode 100755
index 000000000000..d69878ad0849
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p curl nix-prefetch-github
+
+rev=$(curl -s https://api.github.com/repos/python-poetry/poetry/releases/latest | jq -r '.name')
+nix-prefetch-github --rev "$rev" python-poetry poetry > src.json
+
+src=$(nix-build --no-out-link --expr 'with import <nixpkgs> {}; fetchFromGitHub (lib.importJSON ./src.json)')
+cp $src/pyproject.toml $src/poetry.lock .
+nix-build --expr '(import <nixpkgs> { overlays = [ (import ../../overlay.nix) ]; }).poetry'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
new file mode 100644
index 000000000000..b5e807c6e2d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
@@ -0,0 +1,70 @@
+{ pkgs, lib }:
+let
+ inherit (pkgs) stdenv;
+
+ mkPluginDrv =
+ { self
+ , plugins
+ , drv
+ , postInstall ? ""
+ , nativeBuildInputs ? [ ]
+ , buildInputs ? [ ]
+ }:
+ let
+ env = self.python.withPackages (ps: plugins);
+ in
+ stdenv.mkDerivation {
+ pname = drv.pname + "-with-plugins";
+
+ inherit (drv) src version meta;
+
+ buildInputs = drv.buildInputs ++ drv.propagatedBuildInputs ++ buildInputs;
+ nativeBuildInputs = drv.nativeBuildInputs ++ nativeBuildInputs;
+
+ dontConfigure = true;
+ dontBuild = true;
+ dontUsePythonRecompileBytecode = true;
+
+ passthru = {
+ inherit (drv.passthru) withPlugins;
+ inherit plugins;
+ };
+
+ # Link bin/ from environment, but only if it's in a plugin
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin
+
+ for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
+ for bin in $bindir/*; do
+ ln -s ${env}/bin/$(basename $bin) $out/bin/
+ done
+ done
+
+ runHook postInstall
+ '';
+
+ inherit postInstall;
+ };
+
+in
+{
+
+ # Provide the `withPlugins` function
+ toPluginAble = self: { drv
+ , finalDrv
+ , postInstall ? ""
+ , nativeBuildInputs ? [ ]
+ , buildInputs ? [ ]
+ }: drv.overridePythonAttrs (old: {
+ passthru = old.passthru // {
+ withPlugins = pluginFn: mkPluginDrv {
+ plugins = [ finalDrv ] ++ pluginFn self;
+ inherit self postInstall nativeBuildInputs buildInputs;
+ drv = finalDrv;
+ };
+ };
+ });
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
new file mode 100644
index 000000000000..bf001392e6af
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/semver.nix
@@ -0,0 +1,87 @@
+{ lib, ireplace }:
+let
+ inherit (builtins) elemAt match;
+ operators =
+ let
+ matchWildCard = s: match "([^\*])(\.[\*])" s;
+ mkComparison = ret: version: v: builtins.compareVersions version v == ret;
+ mkIdxComparison = idx: version: v:
+ let
+ ver = builtins.splitVersion v;
+ minor = builtins.toString (lib.toInt (elemAt ver idx) + 1);
+ upper = builtins.concatStringsSep "." (ireplace idx minor ver);
+ in
+ operators.">=" version v && operators."<" version upper;
+ dropWildcardPrecision = f: version: constraint:
+ let
+ m = matchWildCard constraint;
+ hasWildcard = m != null;
+ c = if hasWildcard then (elemAt m 0) else constraint;
+ v =
+ if hasWildcard then (builtins.substring 0 (builtins.stringLength c) version)
+ else version;
+ in
+ f v c;
+ in
+ {
+ # Prefix operators
+ "==" = dropWildcardPrecision (mkComparison 0);
+ ">" = dropWildcardPrecision (mkComparison 1);
+ "<" = dropWildcardPrecision (mkComparison (-1));
+ "!=" = v: c: ! operators."==" v c;
+ ">=" = v: c: operators."==" v c || operators.">" v c;
+ "<=" = v: c: operators."==" v c || operators."<" v c;
+ # Semver specific operators
+ "~" = mkIdxComparison 1;
+ "^" = mkIdxComparison 0;
+ "~=" = v: c:
+ let
+ # Prune constraint
+ parts = builtins.splitVersion c;
+ pruned = lib.take ((builtins.length parts) - 1) parts;
+ upper = builtins.toString (
+ (lib.toInt (builtins.elemAt pruned (builtins.length pruned - 1))) + 1
+ );
+ upperConstraint = builtins.concatStringsSep "." (ireplace (builtins.length pruned - 1) upper pruned);
+ in
+ operators.">=" v c && operators."<" v upperConstraint;
+ # Infix operators
+ "-" = version: v: operators.">=" version v.vl && operators."<=" version v.vu;
+ # Arbitrary equality clause, just run simple comparison
+ "===" = v: c: v == c;
+ #
+ };
+ re = {
+ operators = "([=><!~\^]+)";
+ version = "([0-9\.\*x]+)";
+ };
+ parseConstraint = constraint:
+ let
+ constraintStr = builtins.replaceStrings [ " " ] [ "" ] constraint;
+ # The common prefix operators
+ mPre = match "${re.operators} *${re.version}" constraintStr;
+ # There is also an infix operator to match ranges
+ mIn = match "${re.version} *(-) *${re.version}" constraintStr;
+ in
+ (
+ if mPre != null then {
+ op = elemAt mPre 0;
+ v = elemAt mPre 1;
+ }
+ # Infix operators are range matches
+ else if mIn != null then {
+ op = elemAt mIn 1;
+ v = {
+ vl = (elemAt mIn 0);
+ vu = (elemAt mIn 2);
+ };
+ }
+ else throw "Constraint \"${constraintStr}\" could not be parsed"
+ );
+ satisfiesSemver = version: constraint:
+ let
+ inherit (parseConstraint constraint) op v;
+ in
+ if constraint == "*" then true else operators."${op}" version v;
+in
+{ inherit satisfiesSemver; }
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
new file mode 100644
index 000000000000..cbaa4439afe1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
@@ -0,0 +1,41 @@
+{ lib
+, scripts
+, python
+}:
+let
+ mkScript = bin: entrypoint:
+ let
+ elem = builtins.elemAt (builtins.split ":" entrypoint);
+ module = elem 0;
+ fn = elem 2;
+ in
+ ''
+ cat << EOF >> $out/bin/${bin}
+ #!${python.interpreter}
+ import sys
+ import re
+
+ # Insert "" to add CWD to import path
+ sys.path.insert(0, "")
+
+ from ${module} import ${fn}
+
+ if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', "", sys.argv[0])
+ sys.exit(${fn}())
+ EOF
+ chmod +x $out/bin/${bin}
+ '';
+in
+python.pkgs.buildPythonPackage {
+ name = "poetry2nix-env-scripts";
+ dontUnpack = true;
+ dontUseSetuptoolsBuild = true;
+ dontConfigure = true;
+ dontUseSetuptoolsCheck = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ ${lib.concatStringsSep "\n" (lib.mapAttrsToList mkScript scripts)}
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/update b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/update
new file mode 100755
index 000000000000..f96763dbee3b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/poetry2nix/update
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+pwd=$(pwd)
+workdir=$(mktemp -d)
+
+function cleanup {
+ cd "$pwd"
+ rm -rf $workdir
+}
+trap cleanup EXIT
+
+cd "$workdir"
+
+curl -L -s https://github.com/nix-community/poetry2nix/archive/master.tar.gz | tar -xz
+mv poetry2nix-master/* .
+
+mkdir build
+cp *.* build/
+cp -r pkgs hooks bin build/
+rm build/shell.nix build/generate.py build/overlay.nix build/flake.nix
+
+cat > build/README.md << EOF
+Dont change these files here, they are maintained at https://github.com/nix-community/poetry2nix
+
+The update procedure is as-follows:
+1. Send your change to the upstream poetry2nix repository
+2. Get it approved with tests passing
+3. Run the update script in pkgs/development/tools/poetry2nix
+EOF
+
+rm -rf "$pwd/poetry2nix"
+mv build "$pwd/poetry2nix"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/postiats-utilities/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/postiats-utilities/default.nix
new file mode 100644
index 000000000000..4b6d230becd6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/postiats-utilities/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, python3, python3Packages }:
+
+stdenv.mkDerivation {
+ name = "postiats-utilities-2.0.1";
+ src = fetchurl {
+ url = "https://github.com/Hibou57/PostiATS-Utilities/archive/v2.0.1.tar.gz";
+ sha256 = "12jlzqigmaa9m37x0nq5v3gq8v61m73i5kzdnsm06chf0przpaix";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/Hibou57/PostiATS-Utilities";
+ license = licenses.bsd2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ttuegel ];
+ };
+
+ buildInputs = [ python3 python3Packages.wrapPython ];
+
+ phases = "unpackPhase patchPhase installPhase";
+
+ postPatch = ''
+ for f in pats-* postiats/*.py; do
+ sed -i "$f" -e "1 s,python3,python,"
+ done
+ '';
+
+ installPhase = ''
+ libdir="$out/lib/${python3.libPrefix}/site-packages"
+ mkdir -p "$libdir"
+ cp -r postiats "$libdir"
+
+ mkdir -p "$out/bin"
+ install pats-* "$out/bin"
+
+ wrapPythonPrograms
+ '';
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pretty-simple/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pretty-simple/default.nix
new file mode 100644
index 000000000000..c55e176176d9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pretty-simple/default.nix
@@ -0,0 +1,12 @@
+{ haskell, haskellPackages, lib }:
+
+haskell.lib.justStaticExecutables (haskell.lib.overrideCabal haskellPackages.pretty-simple (oldAttrs: {
+ maintainers = (oldAttrs.maintainers or []) ++ [
+ lib.maintainers.cdepillabout
+ ];
+
+ configureFlags = (oldAttrs.configureFlags or []) ++ ["-fbuildexe"];
+
+ buildDepends = (oldAttrs.buildDepends or []) ++ [haskellPackages.optparse-applicative];
+}))
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/EZTrace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/EZTrace/default.nix
new file mode 100644
index 000000000000..e856c1f718a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/EZTrace/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchurl, autoconf, gfortran
+, libelf, libiberty, zlib, libbfd, libopcodes
+, buildPackages
+}:
+
+stdenv.mkDerivation rec {
+ version = "1.1-7";
+ pname = "EZTrace";
+
+ src = fetchurl {
+ url = "https://gforge.inria.fr/frs/download.php/file/37155/eztrace-${version}.tar.gz";
+ sha256 = "0cr2d4fdv4ljvag55dsz3rpha1jan2gc3jhr06ycyk43450pl58p";
+ };
+
+ # Goes past the rpl_malloc linking failure; fixes silent file breakage
+ preConfigure = ''
+ export ac_cv_func_malloc_0_nonnull=yes
+ substituteInPlace ./configure \
+ --replace "/usr/bin/file" "${buildPackages.file}/bin/file"
+ '';
+
+ nativeBuildInputs = [ autoconf gfortran ];
+ buildInputs = [ libelf libiberty zlib libbfd libopcodes ];
+
+ meta = {
+ description = "Tool that aims at generating automatically execution trace from HPC programs";
+ license = stdenv.lib.licenses.cecill-b;
+ maintainers = with stdenv.lib.maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix
new file mode 100644
index 000000000000..fc2937a8b0fd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -0,0 +1,31 @@
+{
+ lib, mkDerivation, fetchFromGitHub, cmake, extra-cmake-modules,
+ zlib, boost, libunwind, elfutils, sparsehash, zstd,
+ qtbase, kio, kitemmodels, threadweaver, kconfigwidgets, kcoreaddons, kdiagram
+}:
+
+mkDerivation rec {
+ pname = "heaptrack";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ owner = "KDE";
+ repo = "heaptrack";
+ rev = "v${version}";
+ sha256 = "0pw82c26da014i1qxnaib3fqa52ijhf0m4swhjc3qq4hm2dx9bxj";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules ];
+ buildInputs = [
+ zlib boost libunwind elfutils sparsehash zstd
+ qtbase kio kitemmodels threadweaver kconfigwidgets kcoreaddons kdiagram
+ ];
+
+ meta = with lib; {
+ description = "Heap memory profiler for Linux";
+ homepage = "https://github.com/KDE/heaptrack";
+ license = licenses.lgpl21Plus;
+ maintainers = with maintainers; [ gebner ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix
new file mode 100644
index 000000000000..ca346cd1f149
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, buildPackages
+, fetchurl, pkgconfig
+, libbfd, popt, zlib, linuxHeaders, libiberty_static
+, withGUI ? false, qt4 ? null
+}:
+
+# libX11 is needed because the Qt build stuff automatically adds `-lX11'.
+assert withGUI -> qt4 != null;
+
+stdenv.mkDerivation rec {
+ name = "oprofile-1.4.0";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/oprofile/${name}.tar.gz";
+ sha256 = "04m46ni0ryk4sqmzd6mahwzp7iwhwqzfbmfi42fki261sycnz83v";
+ };
+
+ postPatch = ''
+ substituteInPlace opjitconv/opjitconv.c \
+ --replace "/bin/rm" "${buildPackages.coreutils}/bin/rm" \
+ --replace "/bin/cp" "${buildPackages.coreutils}/bin/cp"
+ '';
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libbfd zlib popt linuxHeaders libiberty_static ]
+ ++ stdenv.lib.optionals withGUI [ qt4 ];
+
+ configureFlags = [
+ "--with-kernel=${linuxHeaders}"
+ "--disable-shared" # needed because only the static libbfd is available
+ ]
+ ++ stdenv.lib.optional withGUI "--with-qt-dir=${qt4} --enable-gui=qt4";
+
+ meta = {
+ description = "System-wide profiler for Linux";
+ longDescription = ''
+ OProfile is a system-wide profiler for Linux systems, capable of
+ profiling all running code at low overhead. It consists of a
+ kernel driver and a daemon for collecting sample data, and
+ several post-profiling tools for turning data into information.
+
+ OProfile leverages the hardware performance counters of the CPU
+ to enable profiling of a wide variety of interesting statistics,
+ which can also be used for basic time-spent profiling. All code
+ is profiled: hardware and software interrupt handlers, kernel
+ modules, the kernel, shared libraries, and applications.
+ '';
+ license = stdenv.lib.licenses.gpl2;
+ homepage = "http://oprofile.sourceforge.net/";
+
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix
new file mode 100644
index 000000000000..2618dd3ef1ec
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/default.nix
@@ -0,0 +1,35 @@
+# This file was originally generated by https://github.com/kamilchm/go2nix v1.2.1
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "pprof-unstable";
+ version = "2018-08-15";
+ rev = "781f11b1fcf71fae9d185e7189b5e686f575075a";
+
+ goPackagePath = "github.com/google/pprof";
+
+ src = fetchgit {
+ inherit rev;
+ url = "git://github.com/google/pprof";
+ sha256 = "1nvzwcj6h4q0lsjlri3bym4axgv848w3xz57iz5p0wz9lcd5jsmf";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = "A tool for visualization and analysis of profiling data";
+ homepage = "https://github.com/google/pprof";
+ license = licenses.asl20;
+ longDescription = ''
+ pprof reads a collection of profiling samples in profile.proto format and generates reports to visualize and help analyze the data. It can generate both text and graphical reports (through the use of the dot visualization package).
+
+ profile.proto is a protocol buffer that describes a set of callstacks and symbolization information. A common usage is to represent a set of sampled callstacks from statistical profiling. The format is described on the proto/profile.proto file. For details on protocol buffers, see https://developers.google.com/protocol-buffers
+
+ Profiles can be read from a local file, or over http. Multiple profiles of the same type can be aggregated or compared.
+
+ If the profile samples contain machine addresses, pprof can symbolize them through the use of the native binutils tools (addr2line and nm).
+
+ This is not an official Google product.
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/deps.nix
new file mode 100644
index 000000000000..e76f6367996b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/pprof/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+ {
+ goPackagePath = "github.com/chzyer/readline";
+ fetch = {
+ type = "git";
+ url = "https://github.com/chzyer/readline";
+ rev = "2972be24d48e78746da79ba8e24e8b488c9880de";
+ sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
+ };
+ }
+ {
+ goPackagePath = "github.com/ianlancetaylor/demangle";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ianlancetaylor/demangle";
+ rev = "fcd258a6f0b45dc345a407ee5568cf9a4d24a0ae";
+ sha256 = "10hdzq6n4mb13g8ddqvwjwx14djfyxhh0gjc888vdihzvhyqhvrp";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
new file mode 100644
index 000000000000..ce7313098822
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, desktop-file-utils
+, fetchurl
+, fetchpatch
+, gettext
+, glib
+, gtk3
+, itstool
+, libdazzle
+, libxml2
+, meson, ninja
+, pango
+, pkgconfig
+, polkit
+, shared-mime-info
+, systemd
+, wrapGAppsHook
+, gnome3
+}:
+
+stdenv.mkDerivation rec {
+ pname = "sysprof";
+ version = "3.36.0";
+
+ outputs = [ "out" "lib" "dev" ];
+
+ src = fetchurl {
+ url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46";
+ };
+
+ patches = [
+ # Fix 32-bit builds
+ # https://gitlab.gnome.org/GNOME/sysprof/merge_requests/24
+ (fetchpatch {
+ url = "https://gitlab.gnome.org/GNOME/sysprof/commit/5dea152c7728f5a37370ad8a229115833e36b4f6.patch";
+ sha256 = "0c76s7r329pbdlmgvm3grn89iylrxv5wg87craqp937nwk3wb80g";
+ })
+ ];
+
+ nativeBuildInputs = [
+ desktop-file-utils
+ gettext
+ itstool
+ libxml2
+ meson
+ ninja
+ pkgconfig
+ shared-mime-info
+ wrapGAppsHook
+ gnome3.adwaita-icon-theme
+ ];
+ buildInputs = [ glib gtk3 pango polkit systemd.dev (lib.getLib systemd) libdazzle ];
+
+ mesonFlags = [
+ "-Dsystemdunitdir=lib/systemd/system"
+ ];
+
+ passthru = {
+ updateScript = gnome3.updateScript {
+ packageName = pname;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "System-wide profiler for Linux";
+ homepage = "https://wiki.gnome.org/Apps/Sysprof";
+ longDescription = ''
+ Sysprof is a sampling CPU profiler for Linux that uses the perf_event_open
+ system call to profile the entire system, not just a single
+ application. Sysprof handles shared libraries and applications
+ do not need to be recompiled. In fact they don't even have to
+ be restarted.
+ '';
+ license = licenses.gpl2Plus;
+ maintainers = teams.gnome.members;
+ platforms = platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix
new file mode 100644
index 000000000000..c1f38a624184
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/profiling/systemtap/default.nix
@@ -0,0 +1,60 @@
+{ fetchgit, pkgconfig, gettext, runCommand, makeWrapper
+, elfutils, kernel, gnumake, python2, python2Packages
+}:
+
+let
+ ## fetchgit info
+ url = "git://sourceware.org/git/systemtap.git";
+ rev = "release-${version}";
+ sha256 = "0mmpiq7bsrwhp7z07a1pwka4q6d2fbmdx5wp83nxj31rvdxhqwnw";
+ version = "4.1";
+
+ inherit (kernel) stdenv;
+ inherit (stdenv) lib;
+
+ ## stap binaries
+ stapBuild = stdenv.mkDerivation {
+ pname = "systemtap";
+ inherit version;
+ src = fetchgit { inherit url rev sha256; };
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ elfutils gettext python2 python2Packages.setuptools ];
+ enableParallelBuilding = true;
+ };
+
+ ## a kernel build dir as expected by systemtap
+ kernelBuildDir = runCommand "kbuild-${kernel.version}-merged" { } ''
+ mkdir -p $out
+ for f in \
+ ${kernel}/System.map \
+ ${kernel.dev}/vmlinux \
+ ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/{*,.*}
+ do
+ ln -s $(readlink -f $f) $out
+ done
+ '';
+
+ pypkgs = with python2Packages; makePythonPath [ pyparsing ];
+
+in runCommand "systemtap-${kernel.version}-${version}" {
+ inherit stapBuild kernelBuildDir;
+ buildInputs = [ makeWrapper ];
+ meta = {
+ homepage = "https://sourceware.org/systemtap/";
+ repositories.git = url;
+ description = "Provides a scripting language for instrumentation on a live kernel plus user-space";
+ license = lib.licenses.gpl2;
+ platforms = lib.platforms.linux;
+ };
+} ''
+ mkdir -p $out/bin
+ for bin in $stapBuild/bin/*; do
+ ln -s $bin $out/bin
+ done
+ rm $out/bin/stap $out/bin/dtrace
+ makeWrapper $stapBuild/bin/stap $out/bin/stap \
+ --add-flags "-r $kernelBuildDir" \
+ --prefix PATH : ${lib.makeBinPath [ stdenv.cc.cc stdenv.cc.bintools elfutils gnumake ]}
+ makeWrapper $stapBuild/bin/dtrace $out/bin/dtrace \
+ --prefix PYTHONPATH : ${pypkgs}
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/default.nix
new file mode 100644
index 000000000000..38472ce86f01
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, pkgs
+, python
+}:
+
+let
+ py = python.override {
+ packageOverrides = self: super: {
+ pep8-naming = super.pep8-naming.overridePythonAttrs(oldAttrs: rec {
+ version = "0.4.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "0nhf8p37y008shd4f21bkj5pizv8q0l8cpagyyb8gr059d6gvvaf";
+ };
+ });
+ };
+ };
+ setoptconf = py.pkgs.callPackage ./setoptconf.nix { };
+in
+
+with py.pkgs;
+
+buildPythonApplication rec {
+ pname = "prospector";
+ version = "1.2.0";
+ disabled = isPy27;
+
+ src = pkgs.fetchFromGitHub {
+ owner = "PyCQA";
+ repo = pname;
+ rev = version;
+ sha256 = "07kb37zrrsriqzcmli0ghx7qb1iwkzh83qsiikl9jy50faby2sjg";
+ };
+
+ checkInputs = [
+ pytest
+ ];
+
+ checkPhase = ''
+ pytest
+ '';
+
+ patchPhase = ''
+ substituteInPlace setup.py \
+ --replace 'pycodestyle<=2.4.0' 'pycodestyle<=2.5.0'
+ '';
+
+ propagatedBuildInputs = [
+ astroid
+ django
+ dodgy
+ mccabe
+ pep8-naming
+ pycodestyle
+ pydocstyle
+ pyflakes
+ pylint
+ pylint-celery
+ pylint-django
+ pylint-flask
+ pyyaml
+ requirements-detector
+ setoptconf
+ ];
+
+ meta = with lib; {
+ description = "Tool to analyse Python code and output information about errors, potential problems, convention violations and complexity";
+ homepage = "https://github.com/PyCQA/prospector";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix
new file mode 100644
index 000000000000..62b4e95357dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/prospector/setoptconf.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+ pname = "setoptconf";
+ version = "0.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "177l7j68j751i781bgk6pfhxjj7hwqxzdm2ja5fkywbp0275s2sv";
+ };
+
+ # Base tests provided via PyPi are broken
+ doCheck = false;
+
+ meta = with lib; {
+ homepage = "https://pypi.org/project/setoptconf";
+ description = "A module for retrieving program settings from various sources in a consistant method";
+ license = licenses.mit;
+ maintainers = with maintainers; [
+ kamadorueda
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/proto-contrib/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/proto-contrib/default.nix
new file mode 100644
index 000000000000..74f47f3f996e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/proto-contrib/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+ pname = "proto-contrib";
+ version = "0.9.0";
+
+ src = fetchFromGitHub {
+ owner = "emicklei";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ksxic7cypv9gg8q5lkl5bla1n9i65z7b03cx9lwq6252glmf2jk";
+ };
+
+ vendorSha256 = "1ivvq5ch9grdrwqq29flv9821kyb16k0cj6wgj5v0dyn63w420aw";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Contributed tools and other packages on top of the Go proto package";
+ homepage = "https://github.com/emicklei/proto-contrib";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
new file mode 100644
index 000000000000..1a1991be9499
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule {
+ pname = "protoc-gen-doc-unstable";
+ version = "2019-04-22";
+
+ src = fetchFromGitHub {
+ owner = "pseudomuto";
+ repo = "protoc-gen-doc";
+ rev = "f824a8908ce33f213b2dba1bf7be83384c5c51e8";
+ sha256 = "004axh2gqc4f115mdxxg59d19hph3rr0bq9d08n3nyl315f590kj";
+ };
+
+ vendorSha256 = "17qdpsff8jk7ks5v6ix1rb966x3yvq03vk5bs2zbnxfdra7bv3n6";
+
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Documentation generator plugin for Google Protocol Buffers";
+ longDescription = ''
+ This is a documentation generator plugin for the Google Protocol Buffers
+ compiler (protoc). The plugin can generate HTML, JSON, DocBook and
+ Markdown documentation from comments in your .proto files.
+
+ It supports proto2 and proto3, and can handle having both in the same
+ context.
+ '';
+ homepage = "https://github.com/pseudomuto/protoc-gen-doc";
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/prototool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/prototool/default.nix
new file mode 100644
index 000000000000..e58b89a27363
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/prototool/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, protobuf }:
+
+buildGoModule rec {
+ pname = "prototool";
+ version = "1.10.0";
+
+ src = fetchFromGitHub {
+ owner = "uber";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "02ih9pqnziwl2k4z6c59w1p4bxmb3xki5y33pdfkxqn2467s792g";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ vendorSha256 = "0gyj0yrri2j4yxmyn4d4vdhaxf2p08srpjcxg9zpaxwv5rrvipav";
+
+ doCheck = false;
+
+ postInstall = ''
+ wrapProgram "$out/bin/prototool" \
+ --prefix PROTOTOOL_PROTOC_BIN_PATH : "${protobuf}/bin/protoc" \
+ --prefix PROTOTOOL_PROTOC_WKT_PATH : "${protobuf}/include"
+ '';
+
+ subPackages = [ "cmd/prototool" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/uber/prototool";
+ description = "Your Swiss Army Knife for Protocol Buffers";
+ maintainers = [ maintainers.marsam ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile
new file mode 100644
index 000000000000..ec63e2251d5c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'pry'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile.lock
new file mode 100644
index 000000000000..d76845bc05a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/Gemfile.lock
@@ -0,0 +1,17 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ coderay (1.1.2)
+ method_source (0.9.2)
+ pry (0.12.2)
+ coderay (~> 1.1.0)
+ method_source (~> 0.9.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ pry
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pry/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/default.nix
new file mode 100644
index 000000000000..c39af508591f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "pry";
+ gemdir = ./.;
+ exes = [ "pry" ];
+
+ passthru.updateScript = bundlerUpdateScript "pry";
+
+ meta = with lib; {
+ description = "A Ruby runtime developer console and IRB alternative";
+ homepage = "https://pryrepl.org";
+ license = licenses.mit;
+ maintainers = [ maintainers.tckmn ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pry/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/gemset.nix
new file mode 100644
index 000000000000..e779c48aebfc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pry/gemset.nix
@@ -0,0 +1,33 @@
+{
+ coderay = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+ type = "gem";
+ };
+ version = "1.1.2";
+ };
+ method_source = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1pviwzvdqd90gn6y7illcdd9adapw8fczml933p5vl739dkvl3lq";
+ type = "gem";
+ };
+ version = "0.9.2";
+ };
+ pry = {
+ dependencies = ["coderay" "method_source"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "00rm71x0r1jdycwbs83lf9l6p494m99asakbvqxh8rz7zwnlzg69";
+ type = "gem";
+ };
+ version = "0.12.2";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pup/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pup/default.nix
new file mode 100644
index 000000000000..13e8c233ec39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pup/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "pup";
+ version = "0.4.0";
+ rev = "v${version}";
+
+ goPackagePath = "github.com/ericchiang/pup";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://${goPackagePath}";
+ sha256 = "0mnhw0yph5fvcnrcmj1kfbyw1a4lcg3k9f6y28kf44ihlq8h1dfz";
+ };
+
+ meta = with lib; {
+ description = "Streaming HTML processor/selector";
+ license = licenses.mit;
+ maintainers = with maintainers; [ yegortimoshenko ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile
new file mode 100644
index 000000000000..105049819129
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+gem "puppet-lint"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock
new file mode 100644
index 000000000000..870652b567a4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/Gemfile.lock
@@ -0,0 +1,13 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ puppet-lint (2.3.6)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ puppet-lint
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/default.nix
new file mode 100644
index 000000000000..2940605b1b08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/default.nix
@@ -0,0 +1,7 @@
+{ bundlerApp }:
+
+bundlerApp {
+ pname = "puppet-lint";
+ gemdir = ./.;
+ exes = [ "puppet-lint" ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/gemset.nix
new file mode 100644
index 000000000000..86d18b0c554c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/puppet/puppet-lint/gemset.nix
@@ -0,0 +1,10 @@
+{
+ puppet-lint = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wyk2l440d96ps3x127r52n51kqpqi2nzb3xlg92qn6aksqhnkis";
+ type = "gem";
+ };
+ version = "2.3.6";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/default.nix
new file mode 100644
index 000000000000..f5720837d79e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/default.nix
@@ -0,0 +1,53 @@
+{ haskell
+, haskellPackages
+, lib
+, nodejs
+, purescript
+, runCommand
+}:
+
+let
+ spago =
+ haskell.lib.justStaticExecutables
+ (haskell.lib.overrideCabal haskellPackages.spago (oldAttrs: {
+ maintainers = (oldAttrs.maintainers or []) ++ [
+ lib.maintainers.cdepillabout
+ ];
+ }));
+in
+
+spago.overrideAttrs (oldAttrs: {
+ passthru = (oldAttrs.passthru or {}) // {
+ updateScript = ./update.sh;
+
+ # These tests can be run with the following command. The tests access the
+ # network, so they cannot be run in the nix sandbox. sudo is needed in
+ # order to change the sandbox option.
+ #
+ # $ sudo nix-build -A spago.passthru.tests --option sandbox relaxed
+ #
+ tests =
+ runCommand
+ "spago-tests"
+ {
+ __noChroot = true;
+ nativeBuildInputs = [
+ nodejs
+ purescript
+ spago
+ ];
+ }
+ ''
+ # spago expects HOME to be set because it creates a cache file under
+ # home.
+ HOME=$(pwd)
+
+ spago --verbose init
+ spago --verbose build
+ spago --verbose test
+
+ touch $out
+ '';
+ };
+})
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
new file mode 100644
index 000000000000..b36bc26433d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
@@ -0,0 +1,43 @@
+{ mkDerivation, aeson, aeson-pretty, ansi-terminal, async-pool
+, base, bower-json, bytestring, Cabal, containers, dhall, directory
+, either, exceptions, extra, fetchgit, file-embed, filepath, foldl
+, fsnotify, github, Glob, hpack, hspec, hspec-discover
+, hspec-megaparsec, http-client, http-conduit, lens-family-core
+, megaparsec, mtl, network-uri, open-browser, optparse-applicative
+, prettyprinter, process, QuickCheck, retry, rio, rio-orphans, safe
+, semver-range, stdenv, stm, tar, template-haskell, temporary, text
+, time, transformers, turtle, unliftio, unordered-containers
+, vector, versions, with-utf8, zlib
+}:
+mkDerivation {
+ pname = "spago";
+ version = "0.16.0";
+ src = fetchgit {
+ url = "https://github.com/purescript/spago.git";
+ sha256 = "0z4s0z14n1v9wajs7mj2b295rrrw24gdca79drzlv6x1y6dj7sxh";
+ rev = "71b093cdf5e48ded645303281ab4a3ea5b730f5d";
+ fetchSubmodules = true;
+ };
+ isLibrary = true;
+ isExecutable = true;
+ libraryHaskellDepends = [
+ aeson aeson-pretty ansi-terminal async-pool base bower-json
+ bytestring Cabal containers dhall directory either exceptions
+ file-embed filepath foldl fsnotify github Glob http-client
+ http-conduit lens-family-core megaparsec mtl network-uri
+ open-browser optparse-applicative prettyprinter process retry rio
+ rio-orphans safe semver-range stm tar template-haskell temporary
+ text time transformers turtle unliftio unordered-containers vector
+ versions with-utf8 zlib
+ ];
+ libraryToolDepends = [ hpack ];
+ executableHaskellDepends = [ base text turtle with-utf8 ];
+ testHaskellDepends = [
+ base containers directory extra hspec hspec-megaparsec megaparsec
+ process QuickCheck temporary text turtle versions
+ ];
+ testToolDepends = [ hspec-discover ];
+ prePatch = "hpack";
+ homepage = "https://github.com/purescript/spago#readme";
+ license = stdenv.lib.licenses.bsd3;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/update.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/update.sh
new file mode 100755
index 000000000000..74bc01050662
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/purescript/spago/update.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq
+#
+# This script will update the spago derivation to the latest version using
+# cabal2nix.
+#
+# Note that you should always try building spago after updating it here, since
+# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
+# need to be updated/changed.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# Spago derivation created with cabal2nix.
+spago_derivation_file="${script_dir}/spago.nix"
+
+# This is the current revision of spago in Nixpkgs.
+old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")"
+
+# This is the latest release version of spago on GitHub.
+new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/releases" | jq '.[0].tag_name' --raw-output)
+
+echo "Updating spago from old version $old_version to new version $new_version."
+echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
+
+cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" > "$spago_derivation_file"
+
+# TODO: This should ideally also automatically update the docsSearchVersion
+# from pkgs/development/haskell/configuration-nix.nix.
+
+echo "Finished."
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pxview/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pxview/default.nix
new file mode 100644
index 000000000000..6b11071b6fa3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pxview/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, pkgconfig, perl, perlPackages, pxlib }:
+
+stdenv.mkDerivation rec {
+ pname = "pxview";
+ version = "0.2.5";
+ src = fetchurl {
+ url = "mirror://sourceforge/pxlib/${pname}_${version}.orig.tar.gz";
+ sha256 = "1kpdqs6lvnyj02v9fbz1s427yqhgrxp7zw63rzfgiwd4iqp75139";
+ };
+
+ buildInputs = [ pxlib perl ] ++ (with perlPackages; [ libxml_perl ]);
+ nativeBuildInputs = [ pkgconfig ];
+
+ configureFlags = [ "--with-pxlib=${pxlib.out}" ];
+
+ # https://sourceforge.net/p/pxlib/bugs/12/
+ LDFLAGS = "-lm";
+ hardeningDisable = [ "format" ];
+
+ meta = with stdenv.lib; {
+ description = "Program to convert Paradox databases";
+ homepage = "http://pxlib.sourceforge.net/pxview/";
+ license = licenses.gpl2;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.winpat ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pydb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pydb/default.nix
new file mode 100644
index 000000000000..67e7a879d883
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pydb/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, python2, emacs }:
+
+stdenv.mkDerivation {
+ name = "pydb-1.26";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sourceforge/bashdb/pydb-1.26.tar.bz2";
+ sha256 = "1wlkz1hd5d4gkzhkjkzcm650c1lchj28hj36jx96mklglm41h4q1";
+ };
+
+ buildInputs = [ python2 emacs /* emacs is optional */ ];
+
+ preConfigure = ''
+ p="$(toPythonPath $out)"
+ configureFlags="$configureFlags --with-python=${python2.interpreter} --with-site-packages=$p"
+ '';
+
+ meta = {
+ description = "Python debugger with GDB-like commands and Emacs bindings";
+ homepage = "http://bashdb.sourceforge.net/pydb/";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/pypi2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
new file mode 100644
index 000000000000..980aa0f09ea5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/pypi2nix/default.nix
@@ -0,0 +1,23 @@
+{ python3
+}:
+with python3;
+
+pkgs.buildPythonApplication rec {
+ pname = "pypi2nix";
+ version = "2.0.4";
+ src = pkgs.fetchPypi {
+ inherit pname version;
+ sha256 = "0y4zkkcijz5hchd8j6a106ysrg1dnad7dzdgnmz38rgm6zbrky0d";
+ };
+ propagatedBuildInputs = with pkgs; [
+ attrs
+ click
+ jinja2
+ nix-prefetch-github
+ packaging
+ parsley
+ setuptools
+ toml
+ jsonschema
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch
new file mode 100644
index 000000000000..f0e8c3d2c5e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0001-Fix-clang-libcpp-regexp.patch
@@ -0,0 +1,15 @@
+diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp
+index b656f8e1..a830d3c3 100644
+--- a/src/plugins/cpptools/headerpathfilter.cpp
++++ b/src/plugins/cpptools/headerpathfilter.cpp
+@@ -124,8 +124,8 @@ HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths)
+ {
+ // include/c++, include/g++, libc++\include and libc++abi\include
+ static const QString cppIncludes = R"((.*/include/.*(g\+\+|c\+\+).*))"
+- R"(|(.*libc\+\+/include))"
+- R"(|(.*libc\+\+abi/include))"
++ R"(|(.*libc\+\+.*\/include))"
++ R"(|(.*libc\+\+abi.*\/include))";
+ R"(|(/usr/local/include))";
+ static const QRegularExpression includeRegExp("\\A(" + cppIncludes + ")\\z");
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch
new file mode 100644
index 000000000000..b0427e94c7c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/0002-Dont-remove-clang-header-paths.patch
@@ -0,0 +1,12 @@
+diff --git a/src/plugins/cpptools/headerpathfilter.cpp b/src/plugins/cpptools/headerpathfilter.cpp
+index a830d3c3..80e2f933 100644
+--- a/src/plugins/cpptools/headerpathfilter.cpp
++++ b/src/plugins/cpptools/headerpathfilter.cpp
+@@ -157,7 +157,6 @@ void removeClangSystemHeaderPaths(HeaderPaths &headerPaths)
+
+ void HeaderPathFilter::tweakHeaderPaths()
+ {
+- removeClangSystemHeaderPaths(builtInHeaderPaths);
+ removeGccInternalIncludePaths();
+
+ auto split = resourceIterator(builtInHeaderPaths);
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/default.nix
new file mode 100644
index 000000000000..a750a21c1b4c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/qtcreator/default.nix
@@ -0,0 +1,96 @@
+{ mkDerivation, lib, fetchurl, fetchgit, fetchpatch
+, qtbase, qtquickcontrols, qtscript, qtdeclarative, qmake, llvmPackages_8
+, withDocumentation ? false, withClangPlugins ? true
+}:
+
+with lib;
+
+let
+ # Fetch clang from qt vendor, this contains submodules like this:
+ # clang<-clang-tools-extra<-clazy.
+ clang_qt_vendor = llvmPackages_8.clang-unwrapped.overrideAttrs (oldAttrs: {
+ src = fetchgit {
+ url = "https://code.qt.io/clang/clang.git";
+ rev = "c12b012bb7465299490cf93c2ae90499a5c417d5";
+ sha256 = "0mgmnazgr19hnd03xcrv7d932j6dpz88nhhx008b0lv4bah9mqm0";
+ };
+ unpackPhase = "";
+ });
+in
+
+mkDerivation rec {
+ pname = "qtcreator";
+ version = "4.11.0";
+ baseVersion = builtins.concatStringsSep "." (lib.take 2 (builtins.splitVersion version));
+
+ src = fetchurl {
+ url = "http://download.qt-project.org/official_releases/${pname}/${baseVersion}/${version}/qt-creator-opensource-src-${version}.tar.xz";
+ sha256 = "0ibn7bapw7m26nmxl26dns1hnpawfdqk1i1mgg0gjssja8famszg";
+ };
+
+ buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative ] ++
+ optionals withClangPlugins [ llvmPackages_8.libclang
+ clang_qt_vendor
+ llvmPackages_8.llvm ];
+
+ nativeBuildInputs = [ qmake ];
+
+ # 0001-Fix-clang-libcpp-regexp.patch is for fixing regexp that is used to
+ # find clang libc++ library include paths. By default it's not covering paths
+ # like libc++-version, which is default name for libc++ folder in nixos.
+ # ./0002-Dont-remove-clang-header-paths.patch is for forcing qtcreator to not
+ # remove system clang include paths.
+ patches = [ ./0001-Fix-clang-libcpp-regexp.patch
+ ./0002-Dont-remove-clang-header-paths.patch ];
+
+ doCheck = true;
+
+ enableParallelBuilding = true;
+
+ buildFlags = optional withDocumentation "docs";
+
+ installFlags = [ "INSTALL_ROOT=$(out)" ] ++ optional withDocumentation "install_docs";
+
+ preConfigure = ''
+ substituteInPlace src/plugins/plugins.pro \
+ --replace '$$[QT_INSTALL_QML]/QtQuick/Controls' '${qtquickcontrols}/${qtbase.qtQmlPrefix}/QtQuick/Controls'
+ '' + optionalString withClangPlugins ''
+ # Fix paths for llvm/clang includes directories.
+ substituteInPlace src/shared/clang/clang_defines.pri \
+ --replace '$$clean_path($${LLVM_LIBDIR}/clang/$${LLVM_VERSION}/include)' '${clang_qt_vendor}/lib/clang/8.0.0/include' \
+ --replace '$$clean_path($${LLVM_BINDIR})' '${clang_qt_vendor}/bin'
+
+ # Fix include path to find clang and clang-c include directories.
+ substituteInPlace src/plugins/clangtools/clangtools.pro \
+ --replace 'INCLUDEPATH += $$LLVM_INCLUDEPATH' 'INCLUDEPATH += $$LLVM_INCLUDEPATH ${clang_qt_vendor}'
+
+ # Fix paths to libclang library.
+ substituteInPlace src/shared/clang/clang_installation.pri \
+ --replace 'LIBCLANG_LIBS = -L$${LLVM_LIBDIR}' 'LIBCLANG_LIBS = -L${llvmPackages_8.libclang}/lib' \
+ --replace 'LIBCLANG_LIBS += $${CLANG_LIB}' 'LIBCLANG_LIBS += -lclang' \
+ --replace 'LIBTOOLING_LIBS = -L$${LLVM_LIBDIR}' 'LIBTOOLING_LIBS = -L${clang_qt_vendor}/lib' \
+ --replace 'LLVM_CXXFLAGS ~= s,-gsplit-dwarf,' '${lib.concatStringsSep "\n" ["LLVM_CXXFLAGS ~= s,-gsplit-dwarf," " LLVM_CXXFLAGS += -fno-rtti"]}'
+ '';
+
+ preBuild = optional withDocumentation ''
+ ln -s ${getLib qtbase}/$qtDocPrefix $NIX_QT5_TMP/share
+ '';
+
+ postInstall = ''
+ substituteInPlace $out/share/applications/org.qt-project.qtcreator.desktop \
+ --replace "Exec=qtcreator" "Exec=$out/bin/qtcreator"
+ '';
+
+ meta = {
+ description = "Cross-platform IDE tailored to the needs of Qt developers";
+ longDescription = ''
+ Qt Creator is a cross-platform IDE (integrated development environment)
+ tailored to the needs of Qt developers. It includes features such as an
+ advanced code editor, a visual debugger and a GUI designer.
+ '';
+ homepage = "https://wiki.qt.io/Category:Tools::QtCreator";
+ license = "LGPL";
+ maintainers = [ maintainers.akaWolf ];
+ platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/default.nix
new file mode 100644
index 000000000000..8f75540f3a61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "quicktemplate";
+ version = "unstable-2019-07-08";
+ goPackagePath = "github.com/valyala/quicktemplate";
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ owner = "valyala";
+ repo = "quicktemplate";
+ rev = "840e9171940bbc80bb1b925c880664cababae022";
+ sha256 = "1pimf5bwivklsr438if6l8by34gr48a05gl6hq07cvc8z6wl01m2";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/valyala/quicktemplate";
+ description = "Fast, powerful, yet easy to use template engine for Go";
+ license = licenses.mit;
+ maintainers = with maintainers; [ chiiruno ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/deps.nix
new file mode 100644
index 000000000000..6c042966c23f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/quicktemplate/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+ {
+ goPackagePath = "github.com/valyala/bytebufferpool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/valyala/bytebufferpool";
+ rev = "cdfbe9377474227bb42120c1e22fd4433e7f69bf";
+ sha256 = "0c6cixd85dvl2gvs7sdh0k2wm8r3grl4fw0jg4w7d78cp8s2k7ag";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/quilt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/quilt/default.nix
new file mode 100644
index 000000000000..dece0a7b44ba
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/quilt/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchurl, makeWrapper, bash, perl, diffstat, diffutils, patch, findutils }:
+
+stdenv.mkDerivation rec {
+
+ name = "quilt-0.66";
+
+ src = fetchurl {
+ url = "mirror://savannah/quilt/${name}.tar.gz";
+ sha256 = "01vfvk4pqigahx82fhaaffg921ivd3k7rylz1yfvy4zbdyd32jri";
+ };
+
+ buildInputs = [ makeWrapper perl bash diffutils patch findutils diffstat ];
+
+ postInstall = ''
+ wrapProgram $out/bin/quilt --prefix PATH : \
+ ${perl}/bin:${bash}/bin:${diffstat}/bin:${diffutils}/bin:${findutils}/bin:${patch}/bin
+ '';
+
+ meta = {
+ homepage = "https://savannah.nongnu.org/projects/quilt";
+ description = "Easily manage large numbers of patches";
+
+ longDescription = ''
+ Quilt allows you to easily manage large numbers of
+ patches by keeping track of the changes each patch
+ makes. Patches can be applied, un-applied, refreshed,
+ and more.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rdbtools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rdbtools/default.nix
new file mode 100644
index 000000000000..624434101d99
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rdbtools/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, python }:
+
+with python.pkgs;
+
+buildPythonApplication rec {
+ pname = "rdbtools";
+ version = "0.1.15";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "689e57e42f43bdc73ea4e893d9676819980d17968696826b69fbd951f59772de";
+ };
+
+ propagatedBuildInputs = [ redis python-lzf ];
+
+ # No tests in published package
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Parse Redis dump.rdb files, Analyze Memory, and Export Data to JSON";
+ homepage = "https://github.com/sripathikrishnan/redis-rdb-tools";
+ license = licenses.mit;
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rdocker/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rdocker/default.nix
new file mode 100644
index 000000000000..60df0df10031
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rdocker/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, makeWrapper, openssh }:
+
+stdenv.mkDerivation {
+ pname = "rdocker";
+ version = "unstable-2018-07-17";
+
+ src = fetchFromGitHub {
+ owner = "dvddarias";
+ repo = "rdocker";
+ rev = "949377de0154ade2d28c6d4c4ec33b65ea813b5a";
+ sha256 = "1mwg9zh144q4fqk9016v2d347vzch8sxlixaxrz0ci9dxvs6ibd4";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ install -Dm755 rdocker.sh $out/bin/rdocker
+ '';
+
+ postInstall = ''
+ wrapProgram $out/bin/rdocker \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ openssh ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Securely control a remote docker daemon CLI using ssh forwarding, no SSL setup needed";
+ homepage = "https://github.com/dvddarias/rdocker";
+ maintainers = [ stdenv.lib.maintainers.pneumaticat ];
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
new file mode 100644
index 000000000000..3cb5ae2b9306
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, fetchurl, unzip, cairo, xorg, gdk-pixbuf, fontconfig, pango, gnome3, atk, at-spi2-atk, at-spi2-core
+, gtk3, glib, freetype, dbus, nss, nspr, alsaLib, cups, expat, udev, makeDesktopItem
+}:
+
+let
+ rpath = stdenv.lib.makeLibraryPath [
+ cairo
+ stdenv.cc.cc
+ gdk-pixbuf
+ fontconfig
+ pango
+ atk
+ gtk3
+ glib
+ freetype
+ dbus
+ nss
+ nspr
+ alsaLib
+ cups
+ expat
+ udev
+ at-spi2-atk
+ at-spi2-core
+
+ xorg.libX11
+ xorg.libXcursor
+ xorg.libXtst
+ xorg.libxcb
+ xorg.libXext
+ xorg.libXi
+ xorg.libXdamage
+ xorg.libXrandr
+ xorg.libXcomposite
+ xorg.libXfixes
+ xorg.libXrender
+ xorg.libXScrnSaver
+ ];
+in stdenv.mkDerivation rec {
+ pname = "react-native-debugger";
+ version = "0.11.4";
+ src = fetchurl {
+ url = "https://github.com/jhen0409/react-native-debugger/releases/download/v${version}/rn-debugger-linux-x64.zip";
+ sha256 = "1dnlxdqcn90r509ff5003fibkrprdr0ydpnwg5p0xzs6rz3k8698";
+ };
+
+ buildInputs = [ unzip ];
+ buildCommand = ''
+ shopt -s extglob
+ mkdir -p $out
+ unzip $src -d $out
+
+ mkdir $out/{lib,bin,share}
+ mv $out/{libEGL,libGLESv2,libvk_swiftshader,libffmpeg}.so $out/lib
+ mv $out/!(lib|share|bin) $out/share
+
+ patchelf \
+ --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+ --set-rpath ${rpath}:$out/lib \
+ $out/share/react-native-debugger
+
+ ln -s $out/share/react-native-debugger $out/bin/react-native-debugger
+
+ install -Dm644 "${desktopItem}/share/applications/"* \
+ -t $out/share/applications/
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "rndebugger";
+ exec = "react-native-debugger";
+ desktopName = "React Native Debugger";
+ genericName = "React Native Debugger";
+ categories = "Development;Debugger;";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/jhen0409/react-native-debugger";
+ license = licenses.mit;
+ description = "The standalone app based on official debugger of React Native, and includes React Inspector / Redux DevTools";
+ maintainers = with maintainers; [ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rebazel/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rebazel/default.nix
new file mode 100644
index 000000000000..73a58ee100bf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rebazel/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+ pname = "rebazel";
+ version = "0.1.4";
+
+ src = fetchFromGitHub {
+ owner = "meetup";
+ repo = "rebazel";
+ rev = "v${version}";
+ hash = "sha256-v84ZXhtJpejQmP61NmP06+qrtMu/0yb7UyD7U12xlME=";
+ };
+
+ cargoSha256 = "sha256-2FmtbvtNfNoocj3Ly553KBLfOgBAa/eAxOrfZ3NGzzw=";
+
+ meta = with lib; {
+ description = "tool for expediting bazel build workflows";
+ homepage = "https://github.com/meetup/rebazel";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/.bundle/config b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/.bundle/config
new file mode 100644
index 000000000000..b81abe028c3c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/.bundle/config
@@ -0,0 +1,3 @@
+---
+BUNDLE_PATH: vendor
+BUNDLE_DISABLE_SHARED_GEMS: '1'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile
new file mode 100644
index 000000000000..f78cb0873c08
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'redis-dump'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile.lock
new file mode 100644
index 000000000000..f789ae87d8d2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ drydock (0.6.9)
+ redis (4.1.0)
+ redis-dump (0.4.0)
+ drydock (>= 0.6.9)
+ redis (>= 4.0)
+ uri-redis (>= 0.4.0)
+ yajl-ruby (>= 0.1)
+ uri-redis (0.4.2)
+ yajl-ruby (1.4.1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ redis-dump
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/default.nix
new file mode 100644
index 000000000000..2d4acd724d39
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "redis-dump";
+ gemdir = ./.;
+ exes = [ "redis-dump" "redis-load" ];
+
+ passthru.updateScript = bundlerUpdateScript "redis-dump";
+
+ meta = with lib; {
+ description = "Backup and restore your Redis data to and from JSON";
+ homepage = "http://delanotes.com/redis-dump/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ offline manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/gemset.nix
new file mode 100644
index 000000000000..2bfaa1fb9529
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/redis-dump/gemset.nix
@@ -0,0 +1,53 @@
+{
+ drydock = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0grf3361mh93lczljmnwafl7gbcp9kk1bjpfwx4ykpd43fzdbfyj";
+ type = "gem";
+ };
+ version = "0.6.9";
+ };
+ redis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0rk6mmy3y2jd34llrf591ribl1p54ghkw7m96wrbamy8fwva5zqv";
+ type = "gem";
+ };
+ version = "4.1.0";
+ };
+ redis-dump = {
+ dependencies = ["drydock" "redis" "uri-redis" "yajl-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gvip73kgm8xvyjmjkz4b986wni9blsmrnpvp5jrsxjz3g0sqzwg";
+ type = "gem";
+ };
+ version = "0.4.0";
+ };
+ uri-redis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13n8ak41rikkbmml054pir4i1xbgjpmf3dbqihc2kcrgmz3dg81a";
+ type = "gem";
+ };
+ version = "0.4.2";
+ };
+ 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/development/tools/reflex/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/reflex/default.nix
new file mode 100644
index 000000000000..86576869a975
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/reflex/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoPackage }:
+
+
+buildGoPackage rec {
+ pname = "reflex";
+ version = "0.2.0";
+
+ goPackagePath = "github.com/cespare/reflex";
+
+ src = fetchFromGitHub {
+ owner = "cespare";
+ repo = "reflex";
+ rev = "v${version}";
+ sha256 = "0ccwjmf8rjh03hpbmfiy70ai9dhgvb5vp7albffq0cmv2sl69dqr";
+ };
+
+ meta = with lib; {
+ description = "A small tool to watch a directory and rerun a command when certain files change";
+ homepage = "https://github.com/cespare/reflex";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ nicknovitski ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/reftools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/reftools/default.nix
new file mode 100644
index 000000000000..440d2f961337
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/reftools/default.nix
@@ -0,0 +1,32 @@
+{ buildGoModule
+, lib
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "reftools-unstable";
+ version = "2019-12-21";
+ rev = "65925cf013156409e591f7a1be4df96f640d02f4";
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "davidrjenni";
+ repo = "reftools";
+ sha256 = "18jg13skqi2v2vh2k6jvazv6ymhhybangjd23xn2asfk9g6cvnjs";
+ };
+
+ meta = with lib; {
+ description = "reftools - refactoring tools for Go";
+ homepage = "https://github.com/davidrjenni/reftools";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/remarshal/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/remarshal/default.nix
new file mode 100644
index 000000000000..d28ca286f086
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/remarshal/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "remarshal";
+ version = "0.14.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "16425aa1575a271dd3705d812b06276eeedc3ac557e7fd28e06822ad14cd0667";
+ };
+
+ propagatedBuildInputs = with python3Packages; [
+ pyyaml cbor2 dateutil tomlkit u-msgpack-python
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Convert between TOML, YAML and JSON";
+ license = licenses.mit;
+ homepage = "https://github.com/dbohdan/remarshal";
+ maintainers = with maintainers; [ offline ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/renderizer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/renderizer/default.nix
new file mode 100644
index 000000000000..2b2c57135cb0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/renderizer/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "renderizer";
+ version = "2.0.9";
+
+ src = fetchFromGitHub {
+ owner = "gomatic";
+ repo = pname;
+ rev = version;
+ sha256 = "1bip12pcn8bqgph7vd7bzzadwbyqh80fx7gqciv9fchycwsj04rf";
+ };
+
+ vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "CLI to render Go template text files";
+ inherit (src.meta) homepage;
+ license = licenses.gpl3;
+ maintainers = with maintainers; [ yurrriq ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/reno/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/reno/default.nix
new file mode 100644
index 000000000000..b05bb2cd26a3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/reno/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, git
+, gnupg1
+, python3Packages
+}:
+
+with python3Packages; buildPythonApplication rec {
+ pname = "reno";
+ version = "3.1.0";
+
+ # Must be built from python sdist because of versioning quirks
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "2510e3aae4874674187f88f22f854e6b0ea1881b77039808a68ac1a5e8ee69b6";
+ };
+
+ propagatedBuildInputs = [
+ dulwich
+ pbr
+ pyyaml
+ setuptools # required for finding pkg_resources at runtime
+ ];
+
+ checkInputs = [
+ # Python packages
+ pytestCheckHook
+ docutils
+ fixtures
+ sphinx
+ testtools
+ testscenarios
+
+ # Required programs to run all tests
+ git
+ gnupg1
+ ];
+
+ # remove b/c doesn't list all dependencies, and requires a few packages not in nixpkgs
+ postPatch = ''
+ rm test-requirements.txt
+ '';
+
+ disabledTests = [
+ "test_build_cache_db" # expects to be run from a git repository
+ ];
+
+ # verify executable
+ postCheck = ''
+ $out/bin/reno -h
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Release Notes Manager";
+ homepage = "https://docs.openstack.org/reno/latest";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ drewrisinger guillaumekoenig ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rep/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rep/default.nix
new file mode 100644
index 000000000000..d24056f1d02b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rep/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, asciidoc-full }:
+
+stdenv.mkDerivation rec {
+ pname = "rep";
+ version = "0.2.1";
+
+ src = fetchFromGitHub {
+ owner = "eraserhd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1p0dbaj7f4irzzw1m44x3b3j3jjij9i4rs83wkrpiamlq61077di";
+ };
+
+ nativeBuildInputs = [
+ asciidoc-full
+ ];
+
+ postPatch = ''
+ substituteInPlace rc/rep.kak --replace '$(rep' '$('"$out/bin/rep"
+ '';
+ makeFlags = [ "prefix=$(out)" ];
+
+ meta = with stdenv.lib; {
+ description = "Single-shot nREPL client";
+ homepage = "https://github.com/eraserhd/rep";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = [ maintainers.eraserhd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
new file mode 100644
index 000000000000..247227411844
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, makeWrapper, jre_headless, gawk }:
+
+stdenv.mkDerivation rec {
+ pname = "nexus";
+ version = "3.22.0-02";
+
+ src = fetchurl {
+ url = "https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-${version}-unix.tar.gz";
+ sha256 = "12433fgva03gsgi37xqgkdnbglgq4b66lmzk5cyxfg22szl4xvwz";
+ };
+
+ preferLocalBuild = true;
+
+ sourceRoot = "${pname}-${version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ patches = [ ./nexus-bin.patch ./nexus-vm-opts.patch ];
+
+ postPatch = ''
+ substituteInPlace bin/nexus.vmoptions \
+ --replace etc/karaf $out/etc/karaf \
+ --replace =. =$out
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out
+ cp -rfv * .install4j $out
+ rm -fv $out/bin/nexus.bat
+
+ wrapProgram $out/bin/nexus \
+ --set JAVA_HOME ${jre_headless} \
+ --set ALTERNATIVE_NAME "nexus" \
+ --prefix PATH "${stdenv.lib.makeBinPath [ gawk ]}"
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Repository manager for binary software components";
+ homepage = "http://www.sonatype.org/nexus";
+ license = licenses.epl10;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ aespinosa ironpinguin zaninime ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch
new file mode 100644
index 000000000000..14bcc973aae7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-bin.patch
@@ -0,0 +1,48 @@
+diff --git a/bin/nexus b/bin/nexus
+index d06cb44..37c606e 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -88,7 +88,7 @@ create_db_entry() {
+ fi
+ db_new_file=${db_file}_new
+ if [ -f "$db_file" ]; then
+- awk '$2 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
++ awk '$2 != "'"$test_dir"'" {print $scriptname}' $db_file > $db_new_file
+ rm "$db_file"
+ mv "$db_new_file" "$db_file"
+ fi
+@@ -246,7 +246,7 @@ read_vmoptions() {
+
+ unpack_file() {
+ if [ -f "$1" ]; then
+- jar_file=`echo "$1" | awk '{ print substr($0,1,length-5) }'`
++ jar_file=`echo "$1" | awk '{ print substr($scriptname,1,length-5) }'`
+ bin/unpack200 -r "$1" "$jar_file"
+
+ if [ $? -ne 0 ]; then
+@@ -377,9 +377,14 @@ fi
+
+ old_pwd=`pwd`
+
+-progname=`basename "$0"`
+-linkdir=`dirname "$0"`
++scriptname=$0
+
++if [ ! -z "$ALTERNATIVE_NAME" ]; then
++ scriptname=`dirname "$0"`"/"$ALTERNATIVE_NAME
++fi
++
++progname=`basename "$scriptname"`
++linkdir=`dirname "$scriptname"`
+ cd "$linkdir"
+ prg="$progname"
+
+@@ -590,7 +595,7 @@ return_code=$?
+
+ ;;
+ *)
+- echo "Usage: $0 {start|stop|run|run-redirect|status|restart|force-reload}"
++ echo "Usage: $scriptname {start|stop|run|run-redirect|status|restart|force-reload}"
+ exit 1
+ ;;
+ esac
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch
new file mode 100644
index 000000000000..744b4b96a56b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/repository-managers/nexus/nexus-vm-opts.patch
@@ -0,0 +1,14 @@
+diff --git a/bin/nexus b/bin/nexus
+index e7ed3fb..8db766b 100755
+--- a/bin/nexus
++++ b/bin/nexus
+@@ -440,7 +440,8 @@ add_class_path "$app_home/lib/boot/org.apache.karaf.diagnostic.boot-4.0.9.jar"
+ add_class_path "$app_home/lib/boot/org.apache.karaf.jaas.boot-4.0.9.jar"
+
+ vmoptions_val=""
+-read_vmoptions "$prg_dir/$progname.vmoptions"
++VM_OPTS=${VM_OPTS_FILE:-"$prg_dir/$progname.vmoptions"}
++read_vmoptions "$VM_OPTS"
+ INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rgp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rgp/default.nix
new file mode 100644
index 000000000000..8c3da159d64e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rgp/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, stdenv
+, makeWrapper
+, fetchurl
+, autoPatchelfHook
+, dbus
+, fontconfig
+, freetype
+, glib
+, libglvnd
+, libX11
+, libxcb
+, libXi
+, ncurses5
+, qtbase
+, qtdeclarative
+, zlib
+}:
+
+let
+ buildNum = "2020-09-11-26";
+in
+stdenv.mkDerivation rec {
+ pname = "rgp";
+ version = "1.8";
+
+ src = fetchurl {
+ url = "https://github.com/GPUOpen-Tools/radeon_gpu_profiler/releases/download/v${lib.versions.majorMinor version}/RadeonDeveloperTools-${buildNum}.tgz";
+ sha256 = "1lpkh7sfpq697lm4xnkpjfchh8zpy49f4mb3c5qcn7brav5iqwfh";
+ };
+
+ nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+
+ buildInputs = [
+ dbus
+ fontconfig
+ freetype
+ glib
+ libglvnd
+ libX11
+ libxcb
+ libXi
+ ncurses5
+ qtbase
+ qtdeclarative
+ zlib
+ ];
+
+ runtimeDependencies = [
+ "${placeholder "out"}/opt/rgp"
+ "${placeholder "out"}/opt/rgp/qt"
+ ];
+
+ installPhase = ''
+ mkdir -p $out/opt/rgp $out/bin
+ cp -r . $out/opt/rgp/
+ # Breaks autoPatchelfHook and has no known usage
+ rm $out/opt/rgp/AMDToolsDownloader
+
+ for prog in RadeonGPUProfiler RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI; do
+ # makeWrapper is needed so that executables are started from the opt
+ # directory, where qt.conf is
+ makeWrapper \
+ $out/opt/rgp/$prog \
+ $out/bin/$prog
+ done
+ '';
+
+ meta = with lib; {
+ description = "A tool from AMD that allows for deep inspection of GPU workloads";
+ homepage = "https://gpuopen.com/gaming-product/radeon-gpu-profiler-rgp/";
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ Flakebi ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/richgo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/richgo/default.nix
new file mode 100644
index 000000000000..441c0d8bdf1d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/richgo/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "richgo";
+ version = "0.3.3";
+
+ src = fetchFromGitHub {
+ owner = "kyoh86";
+ repo = "richgo";
+ rev = "v${version}";
+ sha256 = "07ipa54c4mzm6yizgvkm6x5yim1xgv3f0xdxg35qziacdfcwd6m4";
+ };
+
+ vendorSha256 = "1nvk3akjwfcbvif1w4cglsqplcajlwq3mnvk9b75nmn9qaqfbfjf";
+
+ doCheck = false;
+
+ subPackages = [ "." ];
+
+ meta = with stdenv.lib; {
+ description = "Enrich `go test` outputs with text decorations";
+ homepage = "https://github.com/kyoh86/richgo";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rvolosatovs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
new file mode 100644
index 000000000000..e938526ecbfb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rnix-lsp/default.nix
@@ -0,0 +1,22 @@
+{ callPackage, lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rnix-lsp";
+ version = "0.1.0";
+
+ src = fetchFromGitHub {
+ owner = "nix-community";
+ repo = "rnix-lsp";
+ rev = "v${version}";
+
+ sha256 = "0fy620c34kxl27sd62x9mj0555bcdmnmbsxavmyiwb497z1m9wnn";
+ };
+
+ cargoSha256 = "0xmaa7rds7hlagfxj65pv9vgflcv4nwbwbw4g7cyj88cbb1kbxxj";
+
+ meta = with lib; {
+ description = "A work-in-progress language server for Nix, with syntax checking and basic completion";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jD91mZM2 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile
new file mode 100644
index 000000000000..64f1df743abc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile
@@ -0,0 +1,3 @@
+source "https://rubygems.org"
+
+gem "ronn"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile.lock
new file mode 100644
index 000000000000..ff71ebd7a01c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ hpricot (0.8.6)
+ mustache (1.0.3)
+ rdiscount (2.2.0.1)
+ ronn (0.7.3)
+ hpricot (>= 0.8.2)
+ mustache (>= 0.7.0)
+ rdiscount (>= 1.5.8)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ ronn
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/default.nix
new file mode 100644
index 000000000000..9e4ac0b58ebe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, lib, bundlerEnv, bundlerUpdateScript, makeWrapper, groff }:
+
+stdenv.mkDerivation rec {
+ pname = "ronn";
+ version = env.gems.ronn.version;
+
+ env = bundlerEnv {
+ name = "ronn-gems";
+ gemdir = ./.;
+ };
+
+ phases = ["installPhase"];
+
+ buildInputs = [ makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ makeWrapper ${env}/bin/ronn $out/bin/ronn \
+ --set PATH ${groff}/bin
+ '';
+
+ passthru.updateScript = bundlerUpdateScript "ronn";
+
+ meta = with lib; {
+ description = "markdown-based tool for building manpages";
+ homepage = "https://rtomayko.github.io/ronn/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ zimbatm nicknovitski ];
+ platforms = env.ruby.meta.platforms;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/gemset.nix
new file mode 100644
index 000000000000..ce804e1f9f5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ronn/gemset.nix
@@ -0,0 +1,34 @@
+{
+ hpricot = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jn8x9ch79gqmnzgyz78kppavjh5lqx0y0r6frykga2b86rz9s6z";
+ type = "gem";
+ };
+ version = "0.8.6";
+ };
+ mustache = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1v4pdvgvs8gw0zbh5sy3l308amlsjg8sdfrkml0g0m0wwj4x7naf";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ rdiscount = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1arvk3k06prxasq1djbj065ixar4zl171340g7wr1ww4gj9makx3";
+ type = "gem";
+ };
+ version = "2.2.0.1";
+ };
+ ronn = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "07plsxxfx5bxdk72ii9za6km0ziqlq8jh3bicr4774dalga6zpw2";
+ type = "gem";
+ };
+ version = "0.7.3";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rq/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rq/default.nix
new file mode 100644
index 000000000000..68d3bfce06b0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rq/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, fetchFromGitHub, rustPlatform, libiconv, llvmPackages, v8 }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rq";
+ version = "1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "dflemstr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0km9d751jr6c5qy4af6ks7nv3xfn13iqi03wq59a1c73rnf0zinp";
+ };
+
+ cargoSha256 = "0c5vwy3c5ji602dj64z6jqvcpi2xff03zvjbnwihb3ydqwnb3v67";
+
+ buildInputs = [ llvmPackages.clang-unwrapped v8 ]
+ ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+ configurePhase = ''
+ export LIBCLANG_PATH="${llvmPackages.clang-unwrapped}/lib"
+ export V8_SOURCE="${v8}"
+ '';
+
+ meta = with lib; {
+ description = "A tool for doing record analysis and transformation";
+ homepage = "https://github.com/dflemstr/rq";
+ license = with licenses; [ asl20 ];
+ maintainers = with maintainers; [ aristid filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rshell/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rshell/default.nix
new file mode 100644
index 000000000000..4e3e12a8eeb1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rshell/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonApplication, fetchPypi, pyserial, pyudev }:
+
+buildPythonApplication rec {
+ pname = "rshell";
+ version = "0.0.28";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1crnlv0khplpibl9mj3flrgp877pnr1xz6hnnsi6hk3kfbc6p3nj";
+ };
+
+ propagatedBuildInputs = [ pyserial pyudev ];
+
+ meta = with lib; {
+ homepage = "https://github.com/dhylands/rshell";
+ description = "Remote Shell for MicroPython";
+ license = licenses.mit;
+ maintainers = with maintainers; [ c0deaddict ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rtags/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rtags/default.nix
new file mode 100644
index 000000000000..0ebeab72df3f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rtags/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchgit, cmake, llvmPackages, openssl, apple_sdk, emacs, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ pname = "rtags";
+ version = "2.38";
+ nativeBuildInputs = [ cmake pkgconfig ];
+ buildInputs = [ llvmPackages.llvm openssl emacs ]
+ ++ lib.optionals stdenv.cc.isGNU [ llvmPackages.clang-unwrapped ]
+ ++ lib.optionals stdenv.isDarwin [ apple_sdk.libs.xpc apple_sdk.frameworks.CoreServices ];
+
+ src = fetchgit {
+ rev = "refs/tags/v${version}";
+ fetchSubmodules = true;
+ url = "https://github.com/andersbakken/rtags.git";
+ sha256 = "1iwvp7a69sj3wqjgcnyh581qrpicxzi2lfjkxqpabpyjkl5nk7hh";
+ # unicode file names lead to different checksums on HFS+ vs. other
+ # filesystems because of unicode normalisation
+ postFetch = ''
+ rm $out/src/rct/tests/testfile_*.txt
+ '';
+ };
+
+ preConfigure = ''
+ export LIBCLANG_CXXFLAGS="-isystem ${llvmPackages.clang.cc}/include $(llvm-config --cxxflags) -fexceptions" \
+ LIBCLANG_LIBDIR="${llvmPackages.clang.cc}/lib"
+ '';
+
+ enableParallelBuilding = true;
+
+ meta = {
+ description = "C/C++ client-server indexer based on clang";
+ homepage = "https://github.com/andersbakken/rtags";
+ license = stdenv.lib.licenses.gpl3;
+ platforms = with stdenv.lib.platforms; x86_64 ++ aarch64;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile
new file mode 100644
index 000000000000..18a39cab1c3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'rubocop'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
new file mode 100644
index 000000000000..0e6e3a7f3610
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ ast (2.4.0)
+ jaro_winkler (1.5.4)
+ parallel (1.19.1)
+ parser (2.6.5.0)
+ ast (~> 2.4.0)
+ rainbow (3.0.0)
+ rubocop (0.77.0)
+ jaro_winkler (~> 1.5.1)
+ parallel (~> 1.10)
+ parser (>= 2.6)
+ rainbow (>= 2.2.2, < 4.0)
+ ruby-progressbar (~> 1.7)
+ unicode-display_width (>= 1.4.0, < 1.7)
+ ruby-progressbar (1.10.1)
+ unicode-display_width (1.6.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ rubocop
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/default.nix
new file mode 100644
index 000000000000..9a6393977d7f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/default.nix
@@ -0,0 +1,19 @@
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
+
+bundlerEnv {
+ pname = "rubocop";
+
+ inherit ruby;
+
+ gemdir = ./.;
+
+ passthru.updateScript = bundlerUpdateScript "rubocop";
+
+ meta = with lib; {
+ description = "Automatic Ruby code style checking tool";
+ homepage = "https://docs.rubocop.org/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ marsam leemachin ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
new file mode 100644
index 000000000000..d7e1b9328dc1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rubocop/gemset.nix
@@ -0,0 +1,84 @@
+{
+ ast = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+ type = "gem";
+ };
+ version = "2.4.0";
+ };
+ jaro_winkler = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+ type = "gem";
+ };
+ version = "1.5.4";
+ };
+ parallel = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+ type = "gem";
+ };
+ version = "1.19.1";
+ };
+ parser = {
+ dependencies = ["ast"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "09davv4ld6caqlczw64vhwf8hr41apys3cj8v2h96yxs4qg1m2iw";
+ type = "gem";
+ };
+ version = "2.6.5.0";
+ };
+ rainbow = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ rubocop = {
+ dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0m88b1bgbhmmbdnz2xv6n0il0j4q5qm9jbc0vf1zsaxmxqp06nx9";
+ type = "gem";
+ };
+ version = "0.77.0";
+ };
+ ruby-progressbar = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+ type = "gem";
+ };
+ version = "1.10.1";
+ };
+ unicode-display_width = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08kfiniak1pvg3gn5k6snpigzvhvhyg7slmm0s2qx5zkj62c1z2w";
+ type = "gem";
+ };
+ version = "1.6.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rucksack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rucksack/default.nix
new file mode 100644
index 000000000000..2734cdd3596e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rucksack/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, liblaxjson, cmake, freeimage }:
+
+stdenv.mkDerivation rec {
+ version = "3.1.0";
+ pname = "rucksack";
+
+ src = fetchFromGitHub {
+ owner = "andrewrk";
+ repo = "rucksack";
+ rev = version;
+ sha256 = "0bcm20hqxqnq1j0zghb9i7z9frri6bbf7rmrv5g8dd626sq07vyv";
+ };
+
+ buildInputs = [ cmake liblaxjson freeimage ];
+
+ meta = with stdenv.lib; {
+ description = "Texture packer and resource bundler";
+ platforms = [ "i686-linux" "x86_64-linux" ]; # fails on Darwin and AArch64
+ homepage = "https://github.com/andrewrk/rucksack";
+ license = licenses.mit;
+ maintainers = [ maintainers.andrewrk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/run/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/run/default.nix
new file mode 100644
index 000000000000..41d1a8a29fd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/run/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+buildGoModule rec {
+ pname = "run";
+ version = "0.7.2";
+
+ src = fetchFromGitHub {
+ owner = "TekWizely";
+ repo = "run";
+ rev = "v${version}";
+ sha256 = "17n11lqhywq4z62w2rakdq80v7mxf83rgln19vj4v4nxpwd2hjjw";
+ };
+
+ vendorSha256 = "1g5rmiiwqpm8gky9yr5f2a7zsjjmm9i12r7yxj9cz7y3rmw9sw8c";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Easily manage and invoke small scripts and wrappers";
+ homepage = "https://github.com/TekWizely/run";
+ license = licenses.mit;
+ maintainers = with maintainers; [ rawkode filalex77 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rund/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rund/default.nix
new file mode 100644
index 000000000000..9a7ac0b63244
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rund/default.nix
@@ -0,0 +1,49 @@
+{stdenv, lib, fetchFromGitHub, ldc ? null, dcompiler ? ldc }:
+
+assert dcompiler != null;
+
+stdenv.mkDerivation rec {
+ pname = "rund";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "dragon-lang";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "10x6f1nn294r5qnpacrpcbp348dndz5fv4nz6ih55c61ckpkvgcf";
+ };
+
+ buildInputs = [ dcompiler ];
+ buildPhase = ''
+ for candidate in dmd ldmd2 gdmd; do
+ echo Checking for DCompiler $candidate ...
+ dc=$(type -P $candidate || echo "")
+ if [ ! "$dc" == "" ]; then
+ break
+ fi
+ done
+ if [ "$dc" == "" ]; then
+ exit "Error: could not find a D compiler"
+ fi
+ echo Using DCompiler $candidate
+ $dc -I=$src/src -i -run $src/make.d build --out $NIX_BUILD_TOP
+ '';
+
+ doCheck = true;
+ checkPhase = ''
+ $NIX_BUILD_TOP/rund make.d test
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv $NIX_BUILD_TOP/rund $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A compiler-wrapper that runs and caches D programs";
+ homepage = "https://github.com/dragon-lang/rund";
+ license = lib.licenses.boost;
+ maintainers = with maintainers; [ jonathanmarler ];
+ platforms = stdenv.lib.platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
new file mode 100644
index 000000000000..0c476a58e3d8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, fetchFromGitHub, rustPlatform, clang, llvmPackages, rustfmt, writeScriptBin,
+ runtimeShell }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rust-bindgen";
+ version = "0.54.1";
+
+ RUSTFLAGS = "--cap-lints warn"; # probably OK to remove after update
+
+ src = fetchFromGitHub {
+ owner = "rust-lang";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "116np72w6agsi94xa1bdn6h7sa9gd522h358zlixk9xrhrx7yfn3";
+ };
+
+ cargoSha256 = "12a7bd2579jcnkss073v5w5w68fxwvhq6c6ndjy8vp78wg83qich";
+
+ libclang = llvmPackages.libclang.lib; #for substituteAll
+
+ buildInputs = [ libclang ];
+
+ propagatedBuildInputs = [ clang ]; # to populate NIX_CXXSTDLIB_COMPILE
+
+ configurePhase = ''
+ export LIBCLANG_PATH="${libclang}/lib"
+ '';
+
+ postInstall = ''
+ mv $out/bin/{bindgen,.bindgen-wrapped};
+ substituteAll ${./wrapper.sh} $out/bin/bindgen
+ chmod +x $out/bin/bindgen
+ '';
+
+ doCheck = true;
+ checkInputs =
+ let fakeRustup = writeScriptBin "rustup" ''
+ #!${runtimeShell}
+ shift
+ shift
+ exec "$@"
+ '';
+ in [
+ rustfmt
+ fakeRustup # the test suite insists in calling `rustup run nightly rustfmt`
+ clang
+ ];
+ preCheck = ''
+ # for the ci folder, notably
+ patchShebangs .
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Automatically generates Rust FFI bindings to C (and some C++) libraries";
+ longDescription = ''
+ Bindgen takes a c or c++ header file and turns them into
+ rust ffi declarations.
+ As with most compiler related software, this will only work
+ inside a nix-shell with the required libraries as buildInputs.
+ '';
+ homepage = "https://github.com/rust-lang/rust-bindgen";
+ license = with licenses; [ bsd3 ];
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ johntitor ralith ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/wrapper.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/wrapper.sh
new file mode 100755
index 000000000000..95cd0901cec8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/bindgen/wrapper.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+sep='--' # whether to add -- before new options
+cxx=0 # whether cxx was explicitly requested
+lastWasx=0 # whether the last argument passed was -x
+for e in "$@"; do
+ if [[ "$e" == "--" ]]; then
+ sep=
+ fi;
+ if [[ "$sep" == "" ]]; then
+ # we look for -x c++ after -- only
+ if [[ "$e" == "-x" ]]; then
+ lastWasx=1
+ fi;
+ if [[ $lastWasx -eq 1 && "$e" == "c++" ]]; then
+ lastWasx=0
+ cxx=1
+ fi;
+ if [[ "$e" == "-xc++" || "$e" == -std=c++* ]]; then
+ cxx=1
+ fi;
+ fi;
+done;
+cxxflags=
+if [[ $cxx -eq 1 ]]; then
+ cxxflags=$NIX_CXXSTDLIB_COMPILE
+fi;
+if [[ -n "$NIX_DEBUG" ]]; then
+ set -x;
+fi;
+export LIBCLANG_PATH="@libclang@/lib"
+# shellcheck disable=SC2086
+# cxxflags and NIX_CFLAGS_COMPILE should be word-split
+exec -a "$0" @out@/bin/.bindgen-wrapped "$@" $sep $cxxflags $NIX_CFLAGS_COMPILE
+# note that we add the flags after $@ which is incorrect. This is only for the sake
+# of simplicity.
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
new file mode 100644
index 000000000000..76b49056a3f2
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-asm";
+ version = "2019-12-24";
+
+ src = fetchFromGitHub {
+ owner = "gnzlbg";
+ repo = "cargo-asm";
+ rev = "577f890ebd4a09c8265710261e976fe7bfce8668";
+ sha256 = "1f6kzsmxgdms9lq5z9ynnmxymk9k2lzlp3caa52wqjvdw1grw0rb";
+ };
+
+ cargoSha256 = "0d797cisiydblh64vqpfdjf37wmxrvs77phdrqh582lbrvnfhx2j";
+
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ # Test checks against machine code output, which fails with some
+ # LLVM/compiler versions.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Display the assembly or LLVM-IR generated for Rust source code";
+ homepage = "https://github.com/gnzlbg/cargo-asm";
+ license = licenses.mit;
+ maintainers = [ maintainers.danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
new file mode 100644
index 000000000000..8374e0653560
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -0,0 +1,24 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-bloat";
+ version = "0.9.3";
+
+ src = fetchFromGitHub {
+ owner = "RazrFalcon";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04h9yyna47cgn2d232v2fpbgki9gg4lykpmx46ncpsq4g6azl1a9";
+ };
+
+ cargoSha256 = "0lzc2nwz9lpwxv704k40d1416qnf3wy3g6ad8w8xbkfc6ydcaa4l";
+
+ meta = with lib; {
+ description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
+ homepage = "https://github.com/RazrFalcon/cargo-bloat";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
new file mode 100644
index 000000000000..41c03923ec05
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
@@ -0,0 +1,50 @@
+{ rustPlatform, stdenv, lib, fetchFromGitHub, fetchurl
+, pkg-config, openssl
+, CoreFoundation, libiconv, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-c";
+ version = "0.6.15";
+
+ src = stdenv.mkDerivation rec {
+ name = "${pname}-source-${version}";
+
+ src = fetchFromGitHub {
+ owner = "lu-zero";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "04hrk3vy8294vxcsggdpcs8hg3ykzj2564ifsqc4zwz4b4wd1p8l";
+ };
+ cargoLock = fetchurl {
+ url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
+ sha256 = "0rqb6ssqsdlm8zbshbxkwxlyy7j7p2gyficavzz33cw9g6fpmzbd";
+ };
+
+ installPhase = ''
+ mkdir -p $out
+ cp -R ./* $out/
+ cp ${cargoLock} $out/Cargo.lock
+ '';
+ };
+
+ cargoSha256 = "1q2s28nqd6l9qmhmdksdjjlypxry5ff18i2pgwmgiilcry51mj4b";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
+
+ meta = with lib; {
+ description = "A cargo subcommand to build and install C-ABI compatibile dynamic and static libraries";
+ longDescription = ''
+ Cargo C-ABI helpers. A cargo applet that produces and installs a correct
+ pkg-config file, a static library and a dynamic library, and a C header
+ to be used by any C (and C-compatible) software.
+ '';
+ homepage = "https://github.com/lu-zero/cargo-c";
+ changelog = "https://github.com/lu-zero/cargo-c/releases/tag/v${version}";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ primeos ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
new file mode 100644
index 000000000000..0f3571045d67
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-cache";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "matthiaskrgr";
+ repo = pname;
+ rev = version;
+ sha256 = "02d593w1x8160p4m3jwm1dyvv383cy7njijlcaw49jczxv5isqbi";
+ };
+
+ cargoSha256 = "150ifd7gq6csrasqw91z4nsaj6w7kf69j0w6wydr3z7bdahmlgqw";
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+ checkFlagsArray = [ "offline_tests" ];
+
+ meta = with stdenv.lib; {
+ description = "Manage cargo cache (\${CARGO_HOME}, ~/.cargo/), print sizes of dirs and remove dirs selectively";
+ homepage = "https://github.com/matthiaskrgr/cargo-cache";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
new file mode 100644
index 000000000000..750b651651c4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, perl
+, pkg-config
+, Security
+, curl
+, libiconv
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-crev";
+ version = "0.17.0";
+
+ src = fetchFromGitHub {
+ owner = "crev-dev";
+ repo = "cargo-crev";
+ rev = "v${version}";
+ sha256 = "1s5wb5m0d77qi90pyxld98ap37xnxrz3sz5gazq0pp5i9c9xa124";
+ };
+
+ cargoSha256 = "10dzvzjqib751h2p1pl0z3dy2d17xwrcp9vyfrfr185yximcw2wx";
+
+ nativeBuildInputs = [ perl pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+ meta = with stdenv.lib; {
+ description = "A cryptographically verifiable code review system for the cargo (Rust) package manager";
+ homepage = "https://github.com/crev-dev/cargo-crev";
+ license = with licenses; [ asl20 mit mpl20 ];
+ maintainers = with maintainers; [ b4dm4n ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
new file mode 100644
index 000000000000..34126a7713ff
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, perl, pkgconfig, openssl, Security, libiconv, curl
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-deny";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "EmbarkStudios";
+ repo = pname;
+ rev = version;
+ sha256 = "0mfccjcll7dxrhdi2bhfbggmkqdp8cmq5vf8vbb05qzpvlswvkf7";
+ };
+
+ cargoSha256 = "1gp5m432273mr0zwq1kdswdjgp0kajr0imymqyc4yj9i931by1xv";
+
+ nativeBuildInputs = [ perl pkgconfig ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+ meta = with lib; {
+ description = "Cargo plugin to generate list of all licenses for a crate";
+ homepage = "https://github.com/EmbarkStudios/cargo-deny";
+ license = licenses.asl20;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ matthiasbeyer ];
+ };
+}
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
new file mode 100644
index 000000000000..a9c18b021bf5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-embed";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "probe-rs";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0klkgl7c42vhqxj6svw26lcr7rccq89bl17jn3p751x6281zvr35";
+ };
+
+ cargoSha256 = "0w21q2fpr077m8jr24ld3qjimwk1m4fy9dh14fq9nv5xd4f5s8n8";
+
+ nativeBuildInputs = [ pkg-config rustfmt ];
+ buildInputs = [ libusb1 ];
+
+ meta = with lib; {
+ description = "A cargo extension for working with microcontrollers";
+ homepage = "http://probe.rs/";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ fooker ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
new file mode 100644
index 000000000000..c32a87e7839f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-expand";
+ version = "1.0.0";
+
+ src = fetchFromGitHub {
+ owner = "dtolnay";
+ repo = pname;
+ rev = version;
+ sha256 = "0bdv6h3mzmv46pdyvwl0v0bg719dlsxlx378ws6vgi1cga24g37i";
+ };
+
+ cargoSha256 = "0qpihfgfqxw5fyhn124c5lbfaxr717bqf8mrbagh3vdgvk75j0qz";
+
+ meta = with lib; {
+ description =
+ "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
+ homepage = "https://github.com/dtolnay/cargo-expand";
+ license = with licenses; [ mit asl20 ];
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
new file mode 100644
index 000000000000..e5d23c9258cd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-flash";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "probe-rs";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1bcpv1r4pdpp22w7za7kdy7jl487x3nlwxiz6sqq3iq6wq3j9zj0";
+ };
+
+ cargoSha256 = "1pf117fgw9x9diksqv58cw7i0kzmp25yj73y5ll69sk46b6z4j90";
+
+ nativeBuildInputs = [ pkg-config rustfmt ];
+ buildInputs = [ libusb1 ];
+
+ meta = with lib; {
+ description = "A cargo extension for working with microcontrollers";
+ homepage = "http://probe.rs/";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ fooker ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
new file mode 100644
index 000000000000..06f99268d0b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkg-config, rustPlatform, Security, curl, openssl, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-fund";
+ version = "0.2.0";
+
+ src = fetchFromGitHub {
+ owner = "acfoltzer";
+ repo = pname;
+ rev = version;
+ sha256 = "1jim5bgq3fc33391qpa1q1csbzqf4hk1qyfzwxpcs5pb4ixb6vgk";
+ };
+
+ cargoSha256 = "181gcmaw2w5a6ah8a2ahsnc1zkadpmx1azkwh2a6x8myhzw2dxsj";
+
+ # The tests need a GitHub API token.
+ doCheck = false;
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+ meta = with stdenv.lib; {
+ description = "Discover funding links for your project's dependencies";
+ homepage = "https://github.com/acfoltzer/cargo-fund";
+ license = with licenses; [ mit /* or */ asl20 ];
+ maintainers = with maintainers; [ johntitor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
new file mode 100644
index 000000000000..14c849ac0afe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-fuzz";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "rust-fuzz";
+ repo = "cargo-fuzz";
+ rev = version;
+ sha256 = "1d4bq9140bri8cd9zcxh5hhc51vr0s6jadjhwkp688w7k10rq7w8";
+ };
+
+ cargoSha256 = "0zxhak79f50m8nw95ny733mk4x2f7kyk6q9v4f7jr2rkcldhgrpr";
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Command line helpers for fuzzing";
+ homepage = "https://github.com/rust-fuzz/cargo-fuzz";
+ license = with licenses; [ mit asl20 ];
+ maintainers = [ maintainers.ekleog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/cargo-lock.patch
new file mode 100644
index 000000000000..85c7a73c14a7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/cargo-lock.patch
@@ -0,0 +1,318 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index b354f9b..5a17ec2 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -7,7 +7,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "aho-corasick"
+-version = "0.7.6"
++version = "0.7.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -55,7 +55,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "backtrace"
+-version = "0.3.42"
++version = "0.3.43"
+ 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)",
+@@ -78,8 +78,8 @@ name = "better-panic"
+ version = "0.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
+- "console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+@@ -170,17 +170,17 @@ dependencies = [
+
+ [[package]]
+ name = "cargo-geiger"
+-version = "0.9.0"
++version = "0.9.1"
+ dependencies = [
+ "assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "better-panic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cargo 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cargo-platform 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "geiger 0.4.3",
+- "insta 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "insta 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pico-args 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -262,7 +262,7 @@ dependencies = [
+
+ [[package]]
+ name = "console"
+-version = "0.9.1"
++version = "0.9.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "clicolors-control 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -345,7 +345,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl 0.10.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+@@ -357,7 +357,7 @@ dependencies = [
+ "curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
+ "socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -372,7 +372,7 @@ dependencies = [
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libnghttp2-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -390,7 +390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "dtoa"
+-version = "0.4.4"
++version = "0.4.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+@@ -426,7 +426,7 @@ name = "failure"
+ version = "0.1.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+@@ -533,7 +533,7 @@ dependencies = [
+ "libgit2-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+@@ -558,7 +558,7 @@ name = "globset"
+ version = "0.4.4"
+ 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)",
++ "aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bstr 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -646,16 +646,15 @@ dependencies = [
+
+ [[package]]
+ name = "insta"
+-version = "0.13.0"
++version = "0.13.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+@@ -695,7 +694,7 @@ dependencies = [
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libssh2-sys 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+@@ -716,7 +715,7 @@ dependencies = [
+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+@@ -791,7 +790,7 @@ dependencies = [
+
+ [[package]]
+ name = "openssl"
+-version = "0.10.26"
++version = "0.10.27"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -799,7 +798,7 @@ dependencies = [
+ "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+@@ -809,10 +808,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+ name = "openssl-sys"
+-version = "0.9.53"
++version = "0.9.54"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -939,7 +938,7 @@ name = "regex"
+ version = "1.3.3"
+ 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)",
++ "aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1076,7 +1075,7 @@ name = "serde_yaml"
+ version = "0.8.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "linked-hash-map 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+ "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1097,7 +1096,7 @@ dependencies = [
+
+ [[package]]
+ name = "smallvec"
+-version = "1.1.0"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+ [[package]]
+@@ -1231,7 +1230,7 @@ name = "unicode-normalization"
+ version = "0.1.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+
+ [[package]]
+@@ -1259,15 +1258,6 @@ name = "utf8parse"
+ version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+
+-[[package]]
+-name = "uuid"
+-version = "0.8.1"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+ [[package]]
+ name = "vcpkg"
+ version = "0.2.8"
+@@ -1338,13 +1328,13 @@ dependencies = [
+
+ [metadata]
+ "checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
+-"checksum aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "58fb5e95d83b38284460a5fda7d6470aa0b8844d283a0b614b8535e880800d2d"
++"checksum aho-corasick 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5f56c476256dc249def911d6f7580b5fc7e875895b5d7ee88f5d602208035744"
+ "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+ "checksum assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6283bac8dd7226470d491bc4737816fea4ca1fba7a2847f2e9097fd6bfb4624c"
+ "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+ "checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+ "checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+-"checksum backtrace 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b4b1549d804b6c73f4817df2ba073709e96e426f12987127c48e6745568c350b"
++"checksum backtrace 0.3.43 (registry+https://github.com/rust-lang/crates.io-index)" = "7f80256bc78f67e7df7e36d77366f636ed976895d91fe2ab9efa3973e8fe8c4f"
+ "checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
+ "checksum better-panic 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d12a680cc74d8c4a44ee08be4a00dedf671b089c2440b2e3fdaa776cd468476"
+ "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+@@ -1360,7 +1350,7 @@ dependencies = [
+ "checksum colored 1.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8815e2ab78f3a59928fc32e141fbeece88320a240e43f47b2fd64ea3a88a5b3d"
+ "checksum commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007"
+ "checksum commoncrypto-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2"
+-"checksum console 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f5d540c2d34ac9dd0deb5f3b5f54c36c79efa78f6b3ad19106a554d07a7b5d9f"
++"checksum console 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "45e0f3986890b3acbc782009e2629dfe2baa430ac091519ce3be26164a2ae6c0"
+ "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+ "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+ "checksum crates-io 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)" = "54a5db4b026e2d3bad49a9775b01722035ebc6976b95ec556716852d640f3ad5"
+@@ -1373,7 +1363,7 @@ dependencies = [
+ "checksum curl-sys 0.4.25 (registry+https://github.com/rust-lang/crates.io-index)" = "0c38ca47d60b86d0cc9d42caa90a0885669c2abc9791f871c81f58cdf39e979b"
+ "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+ "checksum doc-comment 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
+-"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
++"checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"
+ "checksum encode_unicode 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+ "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+ "checksum escargot 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74cf96bec282dcdb07099f7e31d9fed323bca9435a09aba7b6d99b7617bca96d"
+@@ -1401,7 +1391,7 @@ dependencies = [
+ "checksum ignore 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "522daefc3b69036f80c7d2990b28ff9e0471c683bad05ca258e0a01dd22c5a1e"
+ "checksum im-rc 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0197597d095c0d11107975d3175173f810ee572c2501ff4de64f4f3f119806"
+ "checksum indexmap 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b54058f0a6ff80b6803da8faf8997cde53872b38f4023728f6830b06cd3c0dc"
+-"checksum insta 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d07d2003a61f1eae49feeb2aea003d0da6c80587c20ac505d695805c744d4847"
++"checksum insta 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8df742abee84dbf27d20869c9adf77b0d8f7ea3eead13c2c9e3998d136a97058"
+ "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
+ "checksum jobserver 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "67b06c1b455f1cf4269a8cfc320ab930a810e2375a42af5075eb8a8b36405ce0"
+ "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+@@ -1419,9 +1409,9 @@ dependencies = [
+ "checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226"
+ "checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
+ "checksum opener 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13117407ca9d0caf3a0e74f97b490a7e64c0ae3aa90a8b7085544d0c37b6f3ae"
+-"checksum openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3a3cc5799d98e1088141b8e01ff760112bbd9f19d850c124500566ca6901a585"
++"checksum openssl 0.10.27 (registry+https://github.com/rust-lang/crates.io-index)" = "e176a45fedd4c990e26580847a525e39e16ec32ac78957dbf62ded31b3abfd6f"
+ "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)" = "465d16ae7fc0e313318f7de5cecf57b2fbe7511fd213978b457e1c96ff46736f"
++"checksum openssl-sys 0.9.54 (registry+https://github.com/rust-lang/crates.io-index)" = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
+ "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+ "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
+ "checksum pico-args 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ad1f1b834a05d42dae330066e9699a173b28185b3bdc3dbf14ca239585de8cc"
+@@ -1458,7 +1448,7 @@ dependencies = [
+ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35"
+ "checksum shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9"
+ "checksum sized-chunks 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f01db57d7ee89c8e053245deb77040a6cc8508311f381c88749c33d4b9b78785"
+-"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
++"checksum smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc"
+ "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85"
+ "checksum strip-ansi-escapes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d63676e2abafa709460982ddc02a3bb586b6d15a49b75c212e06edd3933acee"
+ "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+@@ -1479,7 +1469,6 @@ dependencies = [
+ "checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+ "checksum url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
+ "checksum utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d"
+-"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
+ "checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
+ "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
+ "checksum vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
new file mode 100644
index 000000000000..1e79a720a524
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchFromGitHub
+, rustPlatform, pkgconfig, openssl
+# darwin dependencies
+, Security, CoreFoundation, libiconv
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-geiger";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "rust-secure-code";
+ repo = pname;
+ rev = "${pname}-${version}";
+ sha256 = "0kvmjahyx5dcjhry2hkvcshi0lbgipfj0as74a3h3bllfvdfkkg0";
+ };
+
+ cargoSha256 = "0v50fkyf0a77l7whxalwnfqfi8lxy82z2gpd0fa0ib80qjla2n5z";
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ # Multiple tests require internet connectivity, so they are disabled here.
+ # If we ever get cargo-insta (https://crates.io/crates/insta) in tree,
+ # we might be able to run these with something like
+ # `cargo insta review` in the `preCheck` phase.
+ checkPhase = ''
+ cd cargo-geiger/tests/snapshots
+ for file in *
+ do
+ mv $file r#$file
+ done
+ cd -
+ cargo test -- \
+ --skip test_package::case_2 \
+ --skip test_package::case_3 \
+ --skip test_package::case_6
+ '';
+
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security libiconv ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ # FIXME: Use impure version of CoreFoundation because of missing symbols.
+ # CFURLSetResourcePropertyForKey is defined in the headers but there's no
+ # corresponding implementation in the sources from opensource.apple.com.
+ preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+ export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
+ '';
+
+ meta = with lib; {
+ description = "Detects usage of unsafe Rust in a Rust crate and its dependencies";
+ homepage = "https://github.com/rust-secure-code/cargo-geiger";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ evanjs ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/update-cargo-lock.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/update-cargo-lock.sh
new file mode 100755
index 000000000000..6e077c6733f3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-geiger/update-cargo-lock.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# This updates cargo-lock.patch for the diesel version listed in default.nix.
+
+set -eu -o verbose
+
+here=$PWD
+version=$(cat default.nix | grep '^ version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+git clone -b "cargo-geiger-$version" --depth=1 https://github.com/rust-secure-code/cargo-geiger "$checkout"
+cd "$checkout"
+
+rm -f rust-toolchain
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
new file mode 100644
index 000000000000..5f803635dd2e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security, openssl, pkgconfig, libiconv, curl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-generate";
+ version = "0.5.1";
+
+ src = fetchFromGitHub {
+ owner = "ashleygwilliams";
+ repo = "cargo-generate";
+ rev = "v${version}";
+ sha256 = "0rq0anz0cawrgsinqyjh8wb3dgha09wx3ydrd3m9nfxs5dd3ij3k";
+ };
+
+ cargoSha256 = "1vngn9gbiv59wrq230qk2mv00bsbdfk2mi1iqpr736c5wj1caqld";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+ preCheck = ''
+ export HOME=$(mktemp -d) USER=nixbld
+ git config --global user.name Nixbld
+ git config --global user.email nixbld@localhost.localnet
+ '';
+
+ meta = with stdenv.lib; {
+ description = "cargo, make me a project";
+ homepage = "https://github.com/ashleygwilliams/cargo-generate";
+ license = licenses.asl20;
+ maintainers = [ maintainers.turbomack ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
new file mode 100644
index 000000000000..5a8c9150279a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-inspect";
+ version = "0.10.3";
+
+ src = fetchFromGitHub {
+ owner = "mre";
+ repo = pname;
+ rev = version;
+ sha256 = "026vc8d0jkc1d7dlp3ldmwks7svpvqzl0k5niri8a12cl5w5b9hj";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+ cargoSha256 = "1ryi5qi1zz2yljyj4rn84q9zkzafc9w4nw3zc01hlzpnb1sjw5sw";
+
+ meta = with lib; {
+ description = "See what Rust is doing behind the curtains";
+ homepage = "https://github.com/mre/cargo-inspect";
+ license = with licenses; [ mit asl20 ];
+ maintainers = with maintainers; [ minijackson ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch
new file mode 100644
index 000000000000..96f7d9ffb660
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/cargo-lock.patch
@@ -0,0 +1,780 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -0,0 +1,777 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.12.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler32"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++
++[[package]]
++name = "backtrace"
++version = "0.3.49"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
++dependencies = [
++ "addr2line",
++ "cfg-if",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[package]]
++name = "base64"
++version = "0.10.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
++dependencies = [
++ "byteorder",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "block-buffer"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
++dependencies = [
++ "block-padding",
++ "byte-tools",
++ "byteorder",
++ "generic-array",
++]
++
++[[package]]
++name = "block-padding"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
++dependencies = [
++ "byte-tools",
++]
++
++[[package]]
++name = "bstr"
++version = "0.2.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "31accafdb70df7871592c058eca3985b71104e15ac32f64706022c58867da931"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "byte-tools"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "cargo-insta"
++version = "0.16.0"
++dependencies = [
++ "clap",
++ "console",
++ "difference",
++ "glob",
++ "insta",
++ "proc-macro2",
++ "serde",
++ "serde_json",
++ "structopt",
++ "syn",
++ "walkdir",
++]
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "clicolors-control"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90082ee5dcdd64dc4e9e0d37fbf3ee325419e39c0092191e0393df65518f741e"
++dependencies = [
++ "atty",
++ "lazy_static",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "console"
++version = "0.10.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2586208b33573b7f76ccfbe5adb076394c88deaf81b84d7213969805b0a952a7"
++dependencies = [
++ "clicolors-control",
++ "encode_unicode",
++ "lazy_static",
++ "libc",
++ "regex",
++ "terminal_size",
++ "termios",
++ "unicode-width",
++ "winapi",
++]
++
++[[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 = "difference"
++version = "2.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
++
++[[package]]
++name = "digest"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++dependencies = [
++ "generic-array",
++]
++
++[[package]]
++name = "dtoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++
++[[package]]
++name = "encode_unicode"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
++
++[[package]]
++name = "fake-simd"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
++
++[[package]]
++name = "fnv"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
++
++[[package]]
++name = "generic-array"
++version = "0.12.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++dependencies = [
++ "typenum",
++]
++
++[[package]]
++name = "gimli"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++
++[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
++name = "globset"
++version = "0.4.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7ad1da430bd7281dde2576f44c84cc3f0f7b475e7202cd503042dff01a8c8120"
++dependencies = [
++ "aho-corasick",
++ "bstr",
++ "fnv",
++ "log",
++ "regex",
++]
++
++[[package]]
++name = "globwalk"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "178270263374052c40502e9f607134947de75302c1348d1a0e31db67c1691446"
++dependencies = [
++ "bitflags",
++ "ignore",
++ "walkdir",
++]
++
++[[package]]
++name = "heck"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
++dependencies = [
++ "unicode-segmentation",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b9586eedd4ce6b3c498bc3b4dd92fc9f11166aa908a914071953768066c67909"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "ignore"
++version = "0.4.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22dcbf2a4a289528dbef21686354904e1c694ac642610a9bff9e7df730d9ec72"
++dependencies = [
++ "crossbeam-utils",
++ "globset",
++ "lazy_static",
++ "log",
++ "memchr",
++ "regex",
++ "same-file",
++ "thread_local",
++ "walkdir",
++ "winapi-util",
++]
++
++[[package]]
++name = "insta"
++version = "0.16.0"
++dependencies = [
++ "backtrace",
++ "console",
++ "difference",
++ "globwalk",
++ "lazy_static",
++ "pest",
++ "pest_derive",
++ "ron",
++ "serde",
++ "serde_json",
++ "serde_yaml",
++]
++
++[[package]]
++name = "itoa"
++version = "0.4.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++
++[[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.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++
++[[package]]
++name = "linked-hash-map"
++version = "0.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "maplit"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
++name = "object"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
++
++[[package]]
++name = "opaque-debug"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
++
++[[package]]
++name = "pest"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
++dependencies = [
++ "ucd-trie",
++]
++
++[[package]]
++name = "pest_derive"
++version = "2.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
++dependencies = [
++ "pest",
++ "pest_generator",
++]
++
++[[package]]
++name = "pest_generator"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
++dependencies = [
++ "pest",
++ "pest_meta",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "pest_meta"
++version = "2.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
++dependencies = [
++ "maplit",
++ "pest",
++ "sha-1",
++]
++
++[[package]]
++name = "proc-macro-error"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
++dependencies = [
++ "proc-macro-error-attr",
++ "proc-macro2",
++ "quote",
++ "syn",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro-error-attr"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "syn-mid",
++ "version_check",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "regex"
++version = "1.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
++
++[[package]]
++name = "ron"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ece421e0c4129b90e4a35b6f625e472e96c552136f5093a2f4fa2bbb75a62d5"
++dependencies = [
++ "base64",
++ "bitflags",
++ "serde",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++
++[[package]]
++name = "ryu"
++version = "1.0.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.112"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "736aac72d1eafe8e5962d1d1c3d99b0df526015ba40915cb3c49d042e92ec243"
++dependencies = [
++ "serde_derive",
++]
++
++[[package]]
++name = "serde_derive"
++version = "1.0.112"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bf0343ce212ac0d3d6afd9391ac8e9c9efe06b533c8d33f660f6390cc4093f57"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "serde_json"
++version = "1.0.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
++dependencies = [
++ "itoa",
++ "ryu",
++ "serde",
++]
++
++[[package]]
++name = "serde_yaml"
++version = "0.8.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
++dependencies = [
++ "dtoa",
++ "linked-hash-map",
++ "serde",
++ "yaml-rust",
++]
++
++[[package]]
++name = "sha-1"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
++dependencies = [
++ "block-buffer",
++ "digest",
++ "fake-simd",
++ "opaque-debug",
++]
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "structopt"
++version = "0.3.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
++dependencies = [
++ "clap",
++ "lazy_static",
++ "structopt-derive",
++]
++
++[[package]]
++name = "structopt-derive"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
++dependencies = [
++ "heck",
++ "proc-macro-error",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5304cfdf27365b7585c25d4af91b35016ed21ef88f17ced89c7093b43dba8b6"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "syn-mid"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "terminal_size"
++version = "0.1.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b"
++dependencies = [
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "termios"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6f0fcee7b24a25675de40d5bb4de6e41b0df07bc9856295e7e2b3a3600c400c2"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[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 = "typenum"
++version = "1.12.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
++
++[[package]]
++name = "ucd-trie"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
++
++[[package]]
++name = "unicode-segmentation"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "version_check"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++dependencies = [
++ "same-file",
++ "winapi",
++ "winapi-util",
++]
++
++[[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-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi",
++]
++
++[[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 = "yaml-rust"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
++dependencies = [
++ "linked-hash-map",
++]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
new file mode 100644
index 000000000000..e621fa9b9724
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -0,0 +1,27 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-insta";
+ version = "0.16.0";
+
+ src = fetchFromGitHub {
+ owner = "mitsuhiko";
+ repo = "insta";
+ rev = version;
+ sha256 = "1lcbdzh139lhmpz3pyik8nbgrbfc42z9ydz2hkg2lzjdpfdsz3ag";
+ };
+
+ cargoPatches = [ ./cargo-lock.patch ];
+ cargoSha256 = "0qjzbcaznnmb0p0r23s82jjbfs5mhhkacg26lf8fq4vvlkr1hsqf";
+
+ patches = [ ./ignore-rustfmt-test.patch ];
+
+ cargoBuildFlags = [ "-p cargo-insta" ];
+
+ meta = with lib; {
+ description = "A Cargo subcommand for snapshot testing";
+ homepage = "https://github.com/mitsuhiko/insta";
+ license = licenses.asl20;
+ maintainers = with lib.maintainers; [ oxalica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
new file mode 100644
index 000000000000..6c38158d5964
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-insta/ignore-rustfmt-test.patch
@@ -0,0 +1,10 @@
+--- a/src/runtime.rs
++++ b/src/runtime.rs
+@@ -85,6 +85,7 @@ fn format_rust_expression(value: &str) -> Cow<'_, str> {
+ }
+
+ #[test]
++#[ignore]
+ fn test_format_rust_expression() {
+ use crate::assert_snapshot;
+ assert_snapshot!(format_rust_expression("vec![1,2,3]"), @"vec![1, 2, 3]");
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
new file mode 100644
index 000000000000..a1e9f7971f4d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, runCommand, fetchCrate, rustPlatform, Security, openssl, pkg-config
+, SystemConfiguration
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-make";
+ version = "0.32.4";
+
+ src = fetchCrate {
+ inherit pname version;
+ sha256 = "04x363wz82f0sr4128f1nk1wxnnszxsmaxjs92mbvmpbvry82ivq";
+ };
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+
+ cargoSha256 = "1fgcxgm800sr0y6ab7c42l335b6c00cx0f2r5rgayi645a47a1zf";
+
+ # Some tests fail because they need network access.
+ # However, Travis ensures a proper build.
+ # See also:
+ # https://travis-ci.org/sagiegurari/cargo-make
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A Rust task runner and build tool";
+ homepage = "https://github.com/sagiegurari/cargo-make";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ xrelkd ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
new file mode 100644
index 000000000000..8df03a4bd15c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, rustPlatform
+, pkgconfig, curl, libgit2, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-raze";
+ version = "0.2.10";
+
+ src = fetchFromGitHub {
+ owner = "google";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1fznh8jygzyzphw7762qc2jv0370z7qjqk1vkql0g246iqby8pq9";
+ };
+ sourceRoot = "source/impl";
+
+ cargoSha256 = "1z20xc508a3slc1ii3hy09swvlyib14zwf9akxc0h24d5m48as1c";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ curl libgit2 openssl ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Generate Bazel BUILD files from Cargo dependencies";
+ homepage = "https://github.com/google/cargo-raze";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ elasticdog ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
new file mode 100644
index 000000000000..72883ab4508e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-sweep";
+ version = "0.5.0";
+
+ src = fetchFromGitHub {
+ owner = "holmgr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0zwdrh4z5x79qs8cwmwh3phzy4brw0ggv2qyf6pylv99vha5acyf";
+ };
+
+ cargoSha256 = "1sxjc64g8h77a3dvzb99f1f72zrak1nh4jgfjfkw4yc4dhkpyrmz";
+
+ meta = with stdenv.lib; {
+ description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
+ homepage = "https://github.com/holmgr/cargo-sweep";
+ license = licenses.mit;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
new file mode 100644
index 000000000000..f42868826d55
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-sync-readme";
+ version = "1.0";
+
+ src = fetchFromGitHub {
+ owner = "phaazon";
+ repo = pname;
+ rev = version;
+ sha256 = "1c38q87fyfmj6nlwdpavb1xxpi26ncywkgqcwbvblad15c6ydcyc";
+ };
+
+ cargoSha256 = "1x15q6wv5278hm3ns2wmw4i8602g35y1jyv1b8wa5i4dnh52dj83";
+
+ meta = with stdenv.lib; {
+ description = "A cargo plugin that generates a Markdown section in your README based on your Rust documentation";
+ homepage = "https://github.com/phaazon/cargo-sync-readme";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ b4dm4n ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
new file mode 100644
index 000000000000..b7879adcc31c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkgconfig, openssl, CoreServices, Security, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-udeps";
+ version = "0.1.14";
+
+ src = fetchFromGitHub {
+ owner = "est31";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0imvq63i3s9qmm0x8cbaknjap2yfmpzva3y0sxmgkcm8ajkvp114";
+ };
+
+ cargoSha256 = "196w9rgz4pwqvkiy839kqz765ljqx1k129w4nvxgxv3rcmy4lbzm";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security libiconv ];
+
+ # Requires network access
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Find unused dependencies in Cargo.toml";
+ homepage = "https://github.com/est31/cargo-udeps";
+ license = licenses.mit;
+ maintainers = with maintainers; [ b4dm4n ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
new file mode 100644
index 000000000000..8bd4bf6fff8f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices, rust }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-watch";
+ version = "7.5.0";
+
+ src = fetchFromGitHub {
+ owner = "passcod";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "181v922nx8152ymszig1kw6y0mnix6si1zfnv6vqgr5r53pwkbc1";
+ };
+
+ cargoSha256 = "1abhzi1396x8lnxvakj34nysl3ybvsaf21j678wzaqwj16sd3w3d";
+
+ buildInputs = lib.optional stdenv.isDarwin CoreServices;
+
+ # `test with_cargo` tries to call cargo-watch as a cargo subcommand
+ # (calling cargo-watch with command `cargo watch`)
+ preCheck = ''
+ export PATH="$(pwd)/target/${rust.toRustTarget stdenv.hostPlatform}/release:$PATH"
+ '';
+
+ meta = with lib; {
+ description = "A Cargo subcommand for watching over Cargo project's source";
+ homepage = "https://github.com/passcod/cargo-watch";
+ license = licenses.cc0;
+ maintainers = with maintainers; [ xrelkd ivan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
new file mode 100644
index 000000000000..477f26e8b819
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-xbuild";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "rust-osdev";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "01whdjryz6zjsk4149h72w5xdjnkpcn5daf0xnsb59b0q38hjgg9";
+ };
+
+ cargoSha256 = "1gcixzxca1yi4rvy55s986my6j0vx7n6fm1g5r4v4w0zgzlz4d89";
+
+ meta = with stdenv.lib; {
+ description = "Automatically cross-compiles the sysroot crates core, compiler_builtins, and alloc";
+ homepage = "https://github.com/rust-osdev/cargo-xbuild";
+ license = with licenses; [ mit asl20 ];
+ maintainers = with maintainers; [ johntitor xrelkd ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
new file mode 100644
index 000000000000..62b9a616644d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/cbindgen/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "rust-cbindgen";
+ version = "0.14.4";
+
+ src = fetchFromGitHub {
+ owner = "eqrion";
+ repo = "cbindgen";
+ rev = "v${version}";
+ sha256 = "06bis9kk3r0gishzmsq5wk3vv8r78ggk4m800562q2yhnhc37lfd";
+ };
+
+ cargoSha256 = "0x8lxlik4n8rmlydcp0vqyiqwqm98cgwvw3h5hm2zviv8v0y8jnr";
+
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ checkFlags = [
+ # https://github.com/eqrion/cbindgen/issues/338
+ "--skip test_expand"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A project for generating C bindings from Rust code";
+ homepage = "https://github.com/eqrion/cbindgen";
+ license = licenses.mpl20;
+ maintainers = with maintainers; [ jtojnar andir ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/maturin/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
new file mode 100644
index 000000000000..723ea94152ca
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, rustPlatform, dbus, gmp, openssl, pkgconfig
+, darwin }:
+
+let
+ inherit (darwin.apple_sdk.frameworks) Security;
+in rustPlatform.buildRustPackage rec {
+ name = "maturin-${version}";
+ version = "0.8.3";
+
+ src = fetchFromGitHub {
+ owner = "PyO3";
+ repo = "maturin";
+ rev = "v${version}";
+ sha256 = "08l5r7d75id6qzf8xhkjv4hkdr64cq4dbcmdjywmvf9szjbnr65z";
+ };
+
+ cargoSha256 = "1n0sxkhcdg2rbzqd7826pa7sxlnn0c2sc8l6lc98xw21vvqisc8n";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ gmp openssl ]
+ ++ stdenv.lib.optional stdenv.isDarwin Security
+ ++ stdenv.lib.optional stdenv.isLinux dbus;
+
+ # Requires network access, fails in sandbox.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Build and publish crates with pyo3 bindings as python packages";
+ homepage = "https://github.com/PyO3/maturin";
+ license = licenses.mit;
+ maintainers = [ maintainers.danieldk ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racer/default.nix
new file mode 100644
index 000000000000..86f1989729eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racer/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper, substituteAll, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "racer";
+ version = "2.1.35";
+
+ src = fetchFromGitHub {
+ owner = "racer-rust";
+ repo = "racer";
+ rev = "v${version}";
+ sha256 = "0c00b81s7abnadjbf4i39lhdkipx7z44sr8p78jd1fl61yyrspli";
+ };
+
+ cargoSha256 = "1nbp2jp65fqwsq9i04iyi4pbszs035w6id50p5ypw234cqxznikm";
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ # a nightly compiler is required unless we use this cheat code.
+ RUSTC_BOOTSTRAP = 1;
+
+ RUST_SRC_PATH = rustPlatform.rustcSrc;
+ postInstall = ''
+ wrapProgram $out/bin/racer --set-default RUST_SRC_PATH ${rustPlatform.rustcSrc}
+ '';
+
+ checkPhase = ''
+ cargo test -- \
+ --skip nameres::test_do_file_search_std \
+ --skip util::test_get_rust_src_path_rustup_ok \
+ --skip util::test_get_rust_src_path_not_rust_source_tree \
+ --skip extern --skip completes_pub_fn --skip find_crate_doc \
+ --skip follows_use_local_package --skip follows_use_for_reexport \
+ --skip follows_rand_crate --skip get_completion_in_example_dir \
+ --skip test_resolve_global_path_in_modules
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/racer --version
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A utility intended to provide Rust code completion for editors and IDEs";
+ homepage = "https://github.com/racer-rust/racer";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jagajaga ma27 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racerd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
new file mode 100644
index 000000000000..26e2a5ba50e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, fetchpatch, rustPlatform, makeWrapper, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "racerd";
+ version = "unstable-2019-09-02";
+
+ src = fetchFromGitHub {
+ owner = "jwilm";
+ repo = "racerd";
+ rev = "e3d380b9a1d3f3b67286d60465746bc89fea9098";
+ sha256 = "13jqdvjk4savcl03mrn2vzgdsd7vxv2racqbyavrxp2cm9h6cjln";
+ };
+
+ cargoPatches = [
+ (fetchpatch {
+ url = "https://github.com/jwilm/racerd/commit/856f3656e160cd2909c5166e962f422c901720ee.patch";
+ sha256 = "1qq2k4bnwjz5qgn7s8yxd090smwn2wvdm8dd1rrlgpln0a5vxkpb";
+ })
+ ];
+
+ cargoSha256 = "1z0dh2j9ik66i6nww3z7z2gw7nhc0b061zxbjzamk1jybpc845lq";
+
+ # a nightly compiler is required unless we use this cheat code.
+ RUSTC_BOOTSTRAP=1;
+
+ doCheck = false;
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+ RUST_SRC_PATH = rustPlatform.rustcSrc;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp -p $releaseDir/racerd $out/bin/
+ wrapProgram $out/bin/racerd --set-default RUST_SRC_PATH "$RUST_SRC_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ broken = true;
+ description = "JSON/HTTP Server based on racer for adding Rust support to editors and IDEs";
+ homepage = "https://github.com/jwilm/racerd";
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
new file mode 100644
index 000000000000..77a0328fc375
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -0,0 +1,14 @@
+{ pkgs, callPackage }:
+
+{
+ rust-analyzer-unwrapped = callPackage ./generic.nix rec {
+ rev = "2020-10-12";
+ version = "unstable-${rev}";
+ sha256 = "194xax87pwdh3p8zx46igvqwznlpnl4jp8lj987616gyldfgall0";
+ cargoSha256 = "1rvf3a2fpqpf4q52pi676qzq7h0xfqlcbp15sc5vqc8nbbs7c7vw";
+ };
+
+ rust-analyzer = callPackage ./wrapper.nix {} {
+ unwrapped = pkgs.rust-analyzer-unwrapped;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/downgrade-smol_str.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/downgrade-smol_str.patch
new file mode 100644
index 000000000000..c3ceb0963336
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/downgrade-smol_str.patch
@@ -0,0 +1,82 @@
+This patch revert 875ad9b5c410200f5072515ae91b4ff51cff0448 (Bump smol_str from 0.1.16 to 0.1.17 ).
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 477af57aa..8b9055879 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -1470,9 +1470,9 @@ checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
+
+ [[package]]
+ name = "smol_str"
+-version = "0.1.17"
++version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "6ca0f7ce3a29234210f0f4f0b56f8be2e722488b95cb522077943212da3b32eb"
++checksum = "2f7909a1d8bc166a862124d84fdc11bda0ea4ed3157ccca662296919c2972db1"
+ dependencies = [
+ "serde",
+ ]
+diff --git a/crates/hir_expand/src/name.rs b/crates/hir_expand/src/name.rs
+index a5750d829..49841c7a1 100644
+--- a/crates/hir_expand/src/name.rs
++++ b/crates/hir_expand/src/name.rs
+@@ -43,8 +43,8 @@ impl Name {
+ }
+
+ /// Shortcut to create inline plain text name
+- const fn new_inline(text: &str) -> Name {
+- Name::new_text(SmolStr::new_inline(text))
++ const fn new_inline_ascii(text: &[u8]) -> Name {
++ Name::new_text(SmolStr::new_inline_from_ascii(text.len(), text))
+ }
+
+ /// Resolve a name from the text of token.
+@@ -127,7 +127,7 @@ pub mod known {
+ $(
+ #[allow(bad_style)]
+ pub const $ident: super::Name =
+- super::Name::new_inline(stringify!($ident));
++ super::Name::new_inline_ascii(stringify!($ident).as_bytes());
+ )*
+ };
+ }
+@@ -210,8 +210,8 @@ pub mod known {
+ );
+
+ // self/Self cannot be used as an identifier
+- pub const SELF_PARAM: super::Name = super::Name::new_inline("self");
+- pub const SELF_TYPE: super::Name = super::Name::new_inline("Self");
++ pub const SELF_PARAM: super::Name = super::Name::new_inline_ascii(b"self");
++ pub const SELF_TYPE: super::Name = super::Name::new_inline_ascii(b"Self");
+
+ #[macro_export]
+ macro_rules! name {
+diff --git a/crates/hir_ty/src/infer.rs b/crates/hir_ty/src/infer.rs
+index 9a7785c76..2b53b8297 100644
+--- a/crates/hir_ty/src/infer.rs
++++ b/crates/hir_ty/src/infer.rs
+@@ -555,7 +555,7 @@ impl<'a> InferenceContext<'a> {
+
+ fn resolve_lang_item(&self, name: &str) -> Option<LangItemTarget> {
+ let krate = self.resolver.krate()?;
+- let name = SmolStr::new_inline(name);
++ let name = SmolStr::new_inline_from_ascii(name.len(), name.as_bytes());
+ self.db.lang_item(krate, name)
+ }
+
+diff --git a/crates/mbe/src/syntax_bridge.rs b/crates/mbe/src/syntax_bridge.rs
+index d987b2500..a8ad917fb 100644
+--- a/crates/mbe/src/syntax_bridge.rs
++++ b/crates/mbe/src/syntax_bridge.rs
+@@ -636,10 +636,7 @@ impl<'a> TreeSink for TtTreeSink<'a> {
+ let (text, id) = match leaf {
+ tt::Leaf::Ident(ident) => (ident.text.clone(), ident.id),
+ tt::Leaf::Punct(punct) => {
+- assert!(punct.char.is_ascii());
+- let char = &(punct.char as u8);
+- let text = std::str::from_utf8(std::slice::from_ref(char)).unwrap();
+- (SmolStr::new_inline(text), punct.id)
++ (SmolStr::new_inline_from_ascii(1, &[punct.char as u8]), punct.id)
+ }
+ tt::Leaf::Literal(lit) => (lit.text.clone(), lit.id),
+ };
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
new file mode 100644
index 000000000000..b25f74b90f66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -0,0 +1,62 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, cmake
+, useMimalloc ? false
+, doCheck ? true
+
+# Version specific args
+, rev, version, sha256, cargoSha256
+}:
+
+rustPlatform.buildRustPackage {
+ pname = "rust-analyzer-unwrapped";
+ inherit version cargoSha256;
+
+ src = fetchFromGitHub {
+ owner = "rust-analyzer";
+ repo = "rust-analyzer";
+ inherit rev sha256;
+ };
+
+ # FIXME: Temporary fixes for our rust 1.45.0
+ cargoPatches = [
+ ./downgrade-smol_str.patch # Requires rustc 1.46.0
+ ];
+
+ patches = [
+ ./no-track_env_var.patch # Requires rustc 1.47.0
+ ./no-match-unsizing-in-const-fn.patch # Requires rustc 1.46.0
+ ./no-loop-in-const-fn.patch # Requires rustc 1.46.0
+ ./no-option-zip.patch # Requires rustc 1.46.0
+ ];
+
+ buildAndTestSubdir = "crates/rust-analyzer";
+
+ cargoBuildFlags = lib.optional useMimalloc "--features=mimalloc";
+
+ nativeBuildInputs = lib.optional useMimalloc cmake;
+
+ buildInputs = lib.optionals stdenv.hostPlatform.isDarwin
+ [ darwin.apple_sdk.frameworks.CoreServices ];
+
+ RUST_ANALYZER_REV = rev;
+
+ inherit doCheck;
+ preCheck = lib.optionalString doCheck ''
+ export RUST_SRC_PATH=${rustPlatform.rustcSrc}
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ runHook preInstallCheck
+ versionOutput="$($out/bin/rust-analyzer --version)"
+ echo "'rust-analyzer --version' returns: $versionOutput"
+ [[ "$versionOutput" == "rust-analyzer ${rev}" ]]
+ runHook postInstallCheck
+ '';
+
+ meta = with stdenv.lib; {
+ description = "An experimental modular compiler frontend for the Rust language";
+ homepage = "https://github.com/rust-analyzer/rust-analyzer";
+ license = with licenses; [ mit asl20 ];
+ maintainers = with maintainers; [ oxalica ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch
new file mode 100644
index 000000000000..e750b3c4e122
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch
@@ -0,0 +1,223 @@
+This patch revert 4b989009e3839cfc6f021d1552a46561cee6cde2 (CONST LOOPS ARE HERE).
+
+diff --git a/crates/parser/src/grammar/expressions.rs b/crates/parser/src/grammar/expressions.rs
+index 5f885edfd..e72929f8c 100644
+--- a/crates/parser/src/grammar/expressions.rs
++++ b/crates/parser/src/grammar/expressions.rs
+@@ -316,7 +316,7 @@ fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMark
+ }
+
+ const LHS_FIRST: TokenSet =
+- atom::ATOM_EXPR_FIRST.union(TokenSet::new(&[T![&], T![*], T![!], T![.], T![-]]));
++ atom::ATOM_EXPR_FIRST.union(token_set![T![&], T![*], T![!], T![.], T![-]]);
+
+ fn lhs(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
+ let m;
+diff --git a/crates/parser/src/grammar/expressions/atom.rs b/crates/parser/src/grammar/expressions/atom.rs
+index 66a92a4e1..ba6dd2fbc 100644
+--- a/crates/parser/src/grammar/expressions/atom.rs
++++ b/crates/parser/src/grammar/expressions/atom.rs
+@@ -15,7 +15,7 @@ use super::*;
+ // let _ = b"e";
+ // let _ = br"f";
+ // }
+-pub(crate) const LITERAL_FIRST: TokenSet = TokenSet::new(&[
++pub(crate) const LITERAL_FIRST: TokenSet = token_set![
+ TRUE_KW,
+ FALSE_KW,
+ INT_NUMBER,
+@@ -25,8 +25,8 @@ pub(crate) const LITERAL_FIRST: TokenSet = TokenSet::new(&[
+ STRING,
+ RAW_STRING,
+ BYTE_STRING,
+- RAW_BYTE_STRING,
+-]);
++ RAW_BYTE_STRING
++];
+
+ pub(crate) fn literal(p: &mut Parser) -> Option<CompletedMarker> {
+ if !p.at_ts(LITERAL_FIRST) {
+@@ -39,7 +39,7 @@ pub(crate) fn literal(p: &mut Parser) -> Option<CompletedMarker> {
+
+ // E.g. for after the break in `if break {}`, this should not match
+ pub(super) const ATOM_EXPR_FIRST: TokenSet =
+- LITERAL_FIRST.union(paths::PATH_FIRST).union(TokenSet::new(&[
++ LITERAL_FIRST.union(paths::PATH_FIRST).union(token_set![
+ T!['('],
+ T!['{'],
+ T!['['],
+@@ -59,9 +59,9 @@ pub(super) const ATOM_EXPR_FIRST: TokenSet =
+ T![loop],
+ T![for],
+ LIFETIME,
+- ]));
++ ]);
+
+-const EXPR_RECOVERY_SET: TokenSet = TokenSet::new(&[LET_KW, R_DOLLAR]);
++const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW, R_DOLLAR];
+
+ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
+ if let Some(m) = literal(p) {
+diff --git a/crates/parser/src/grammar/items.rs b/crates/parser/src/grammar/items.rs
+index 22810e6fb..8fd8f3b80 100644
+--- a/crates/parser/src/grammar/items.rs
++++ b/crates/parser/src/grammar/items.rs
+@@ -26,7 +26,7 @@ pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) {
+ }
+ }
+
+-pub(super) const ITEM_RECOVERY_SET: TokenSet = TokenSet::new(&[
++pub(super) const ITEM_RECOVERY_SET: TokenSet = token_set![
+ FN_KW,
+ STRUCT_KW,
+ ENUM_KW,
+@@ -41,7 +41,7 @@ pub(super) const ITEM_RECOVERY_SET: TokenSet = TokenSet::new(&[
+ USE_KW,
+ MACRO_KW,
+ T![;],
+-]);
++];
+
+ pub(super) fn item_or_macro(p: &mut Parser, stop_on_r_curly: bool) {
+ let m = p.start();
+diff --git a/crates/parser/src/grammar/paths.rs b/crates/parser/src/grammar/paths.rs
+index 5d297e2d6..52562afa4 100644
+--- a/crates/parser/src/grammar/paths.rs
++++ b/crates/parser/src/grammar/paths.rs
+@@ -3,7 +3,7 @@
+ use super::*;
+
+ pub(super) const PATH_FIRST: TokenSet =
+- TokenSet::new(&[IDENT, T![self], T![super], T![crate], T![:], T![<]]);
++ token_set![IDENT, T![self], T![super], T![crate], T![:], T![<]];
+
+ pub(super) fn is_path_start(p: &Parser) -> bool {
+ is_use_path_start(p) || p.at(T![<])
+diff --git a/crates/parser/src/grammar/patterns.rs b/crates/parser/src/grammar/patterns.rs
+index 796f206e1..07b1d6dd5 100644
+--- a/crates/parser/src/grammar/patterns.rs
++++ b/crates/parser/src/grammar/patterns.rs
+@@ -2,18 +2,9 @@
+
+ use super::*;
+
+-pub(super) const PATTERN_FIRST: TokenSet =
+- expressions::LITERAL_FIRST.union(paths::PATH_FIRST).union(TokenSet::new(&[
+- T![box],
+- T![ref],
+- T![mut],
+- T!['('],
+- T!['['],
+- T![&],
+- T![_],
+- T![-],
+- T![.],
+- ]));
++pub(super) const PATTERN_FIRST: TokenSet = expressions::LITERAL_FIRST
++ .union(paths::PATH_FIRST)
++ .union(token_set![T![box], T![ref], T![mut], T!['('], T!['['], T![&], T![_], T![-], T![.]]);
+
+ pub(crate) fn pattern(p: &mut Parser) {
+ pattern_r(p, PAT_RECOVERY_SET);
+@@ -83,7 +74,7 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
+ }
+
+ const PAT_RECOVERY_SET: TokenSet =
+- TokenSet::new(&[LET_KW, IF_KW, WHILE_KW, LOOP_KW, MATCH_KW, R_PAREN, COMMA]);
++ token_set![LET_KW, IF_KW, WHILE_KW, LOOP_KW, MATCH_KW, R_PAREN, COMMA];
+
+ fn atom_pat(p: &mut Parser, recovery_set: TokenSet) -> Option<CompletedMarker> {
+ let m = match p.nth(0) {
+diff --git a/crates/parser/src/grammar/types.rs b/crates/parser/src/grammar/types.rs
+index 1ea130ac5..9d00eb9b9 100644
+--- a/crates/parser/src/grammar/types.rs
++++ b/crates/parser/src/grammar/types.rs
+@@ -2,7 +2,7 @@
+
+ use super::*;
+
+-pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(TokenSet::new(&[
++pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(token_set![
+ T!['('],
+ T!['['],
+ T![<],
+@@ -16,16 +16,16 @@ pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(TokenSet::new(&[
+ T![for],
+ T![impl],
+ T![dyn],
+-]));
++]);
+
+-const TYPE_RECOVERY_SET: TokenSet = TokenSet::new(&[
++const TYPE_RECOVERY_SET: TokenSet = token_set![
+ T![')'],
+ T![,],
+ L_DOLLAR,
+ // test_err struct_field_recover
+ // struct S { f pub g: () }
+ T![pub],
+-]);
++];
+
+ pub(crate) fn type_(p: &mut Parser) {
+ type_with_bounds_cond(p, true);
+diff --git a/crates/parser/src/token_set.rs b/crates/parser/src/token_set.rs
+index a68f0144e..994017acf 100644
+--- a/crates/parser/src/token_set.rs
++++ b/crates/parser/src/token_set.rs
+@@ -9,21 +9,15 @@ pub(crate) struct TokenSet(u128);
+ impl TokenSet {
+ pub(crate) const EMPTY: TokenSet = TokenSet(0);
+
+- pub(crate) const fn new(kinds: &[SyntaxKind]) -> TokenSet {
+- let mut res = 0u128;
+- let mut i = 0;
+- while i < kinds.len() {
+- res |= mask(kinds[i]);
+- i += 1
+- }
+- TokenSet(res)
++ pub(crate) const fn singleton(kind: SyntaxKind) -> TokenSet {
++ TokenSet(mask(kind))
+ }
+
+ pub(crate) const fn union(self, other: TokenSet) -> TokenSet {
+ TokenSet(self.0 | other.0)
+ }
+
+- pub(crate) const fn contains(&self, kind: SyntaxKind) -> bool {
++ pub(crate) fn contains(&self, kind: SyntaxKind) -> bool {
+ self.0 & mask(kind) != 0
+ }
+ }
+@@ -32,10 +26,16 @@ const fn mask(kind: SyntaxKind) -> u128 {
+ 1u128 << (kind as usize)
+ }
+
++#[macro_export]
++macro_rules! token_set {
++ ($($t:expr),*) => { TokenSet::EMPTY$(.union(TokenSet::singleton($t)))* };
++ ($($t:expr),* ,) => { token_set!($($t),*) };
++}
++
+ #[test]
+ fn token_set_works_for_tokens() {
+ use crate::SyntaxKind::*;
+- let ts = TokenSet::new(&[EOF, SHEBANG]);
++ let ts = token_set![EOF, SHEBANG];
+ assert!(ts.contains(EOF));
+ assert!(ts.contains(SHEBANG));
+ assert!(!ts.contains(PLUS));
+diff --git a/xtask/src/install.rs b/xtask/src/install.rs
+index d829790d7..b25a6e301 100644
+--- a/xtask/src/install.rs
++++ b/xtask/src/install.rs
+@@ -7,7 +7,7 @@ use anyhow::{bail, format_err, Context, Result};
+ use crate::not_bash::{pushd, run};
+
+ // Latest stable, feel free to send a PR if this lags behind.
+-const REQUIRED_RUST_VERSION: u32 = 46;
++const REQUIRED_RUST_VERSION: u32 = 43;
+
+ pub struct InstallCmd {
+ pub client: Option<ClientOpt>,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-match-unsizing-in-const-fn.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-match-unsizing-in-const-fn.patch
new file mode 100644
index 000000000000..3bdd4c8a727b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-match-unsizing-in-const-fn.patch
@@ -0,0 +1,30 @@
+diff --git a/crates/assists/src/handlers/convert_integer_literal.rs b/crates/assists/src/handlers/convert_integer_literal.rs
+index ea35e833a..4df80a3c0 100644
+--- a/crates/assists/src/handlers/convert_integer_literal.rs
++++ b/crates/assists/src/handlers/convert_integer_literal.rs
+@@ -105,7 +105,7 @@ impl IntegerLiteralBase {
+ }
+ }
+
+- const fn base(&self) -> u32 {
++ fn base(&self) -> u32 {
+ match self {
+ Self::Binary => 2,
+ Self::Octal => 8,
+@@ -114,14 +114,14 @@ impl IntegerLiteralBase {
+ }
+ }
+
+- const fn prefix_len(&self) -> usize {
++ fn prefix_len(&self) -> usize {
+ match self {
+ Self::Decimal => 0,
+ _ => 2,
+ }
+ }
+
+- const fn bases() -> &'static [IntegerLiteralBase] {
++ fn bases() -> &'static [IntegerLiteralBase] {
+ &[
+ IntegerLiteralBase::Binary,
+ IntegerLiteralBase::Octal,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch
new file mode 100644
index 000000000000..5b1089ba9b87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch
@@ -0,0 +1,52 @@
+diff --git a/crates/assists/src/handlers/merge_imports.rs b/crates/assists/src/handlers/merge_imports.rs
+index fe33cee53..2184a4154 100644
+--- a/crates/assists/src/handlers/merge_imports.rs
++++ b/crates/assists/src/handlers/merge_imports.rs
+@@ -32,7 +32,7 @@ pub(crate) fn merge_imports(acc: &mut Assists, ctx: &AssistContext) -> Option<()
+ if let Some(use_item) = tree.syntax().parent().and_then(ast::Use::cast) {
+ let (merged, to_delete) =
+ next_prev().filter_map(|dir| neighbor(&use_item, dir)).find_map(|use_item2| {
+- try_merge_imports(&use_item, &use_item2, MergeBehaviour::Full).zip(Some(use_item2))
++ Some((try_merge_imports(&use_item, &use_item2, MergeBehaviour::Full)?, use_item2))
+ })?;
+
+ rewriter.replace_ast(&use_item, &merged);
+@@ -44,7 +44,7 @@ pub(crate) fn merge_imports(acc: &mut Assists, ctx: &AssistContext) -> Option<()
+ } else {
+ let (merged, to_delete) =
+ next_prev().filter_map(|dir| neighbor(&tree, dir)).find_map(|use_tree| {
+- try_merge_trees(&tree, &use_tree, MergeBehaviour::Full).zip(Some(use_tree))
++ Some((try_merge_trees(&tree, &use_tree, MergeBehaviour::Full)?, use_tree))
+ })?;
+
+ rewriter.replace_ast(&tree, &merged);
+diff --git a/crates/assists/src/utils/insert_use.rs b/crates/assists/src/utils/insert_use.rs
+index f6025c99a..f9bd31cf3 100644
+--- a/crates/assists/src/utils/insert_use.rs
++++ b/crates/assists/src/utils/insert_use.rs
+@@ -274,7 +274,7 @@ fn common_prefix(lhs: &ast::Path, rhs: &ast::Path) -> Option<(ast::Path, ast::Pa
+ }
+ res = Some((lhs_curr.clone(), rhs_curr.clone()));
+
+- match lhs_curr.parent_path().zip(rhs_curr.parent_path()) {
++ match zip(lhs_curr.parent_path(), rhs_curr.parent_path()) {
+ Some((lhs, rhs)) => {
+ lhs_curr = lhs;
+ rhs_curr = rhs;
+@@ -452,7 +452,7 @@ fn find_insert_position(
+ let path_node_iter = scope
+ .as_syntax_node()
+ .children()
+- .filter_map(|node| ast::Use::cast(node.clone()).zip(Some(node)))
++ .filter_map(|node| Some((ast::Use::cast(node.clone())?, node)))
+ .flat_map(|(use_, node)| {
+ let tree = use_.use_tree()?;
+ let path = tree.path()?;
+@@ -989,3 +989,7 @@ use foo::bar::baz::Qux;",
+ assert_eq!(result.map(|u| u.to_string()), None);
+ }
+ }
++
++fn zip<T, U>(x: Option<T>, y: Option<U>) -> Option<(T, U)> {
++ Some((x?, y?))
++}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-track_env_var.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-track_env_var.patch
new file mode 100644
index 000000000000..f5173c4bacbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-track_env_var.patch
@@ -0,0 +1,120 @@
+This patch revert 3d169bd3f4cdc2dc3dd09eadbbc17c19214d69f3 (Add track_env_var to the proc macro server).
+
+diff --git a/crates/proc_macro_srv/src/proc_macro/bridge/client.rs b/crates/proc_macro_srv/src/proc_macro/bridge/client.rs
+index 55d6330cc..cb4b3bdb0 100644
+--- a/crates/proc_macro_srv/src/proc_macro/bridge/client.rs
++++ b/crates/proc_macro_srv/src/proc_macro/bridge/client.rs
+@@ -160,7 +160,6 @@ macro_rules! define_handles {
+ }
+ define_handles! {
+ 'owned:
+- FreeFunctions,
+ TokenStream,
+ TokenStreamBuilder,
+ TokenStreamIter,
+diff --git a/crates/proc_macro_srv/src/proc_macro/bridge/mod.rs b/crates/proc_macro_srv/src/proc_macro/bridge/mod.rs
+index b97886eb9..aeb05aad4 100644
+--- a/crates/proc_macro_srv/src/proc_macro/bridge/mod.rs
++++ b/crates/proc_macro_srv/src/proc_macro/bridge/mod.rs
+@@ -57,10 +57,6 @@ use std::thread;
+ macro_rules! with_api {
+ ($S:ident, $self:ident, $m:ident) => {
+ $m! {
+- FreeFunctions {
+- fn drop($self: $S::FreeFunctions);
+- fn track_env_var(var: &str, value: Option<&str>);
+- },
+ TokenStream {
+ fn drop($self: $S::TokenStream);
+ fn clone($self: &$S::TokenStream) -> $S::TokenStream;
+diff --git a/crates/proc_macro_srv/src/proc_macro/bridge/server.rs b/crates/proc_macro_srv/src/proc_macro/bridge/server.rs
+index 3acb239af..45d41ac02 100644
+--- a/crates/proc_macro_srv/src/proc_macro/bridge/server.rs
++++ b/crates/proc_macro_srv/src/proc_macro/bridge/server.rs
+@@ -11,8 +11,6 @@ use super::client::HandleStore;
+ /// Declare an associated item of one of the traits below, optionally
+ /// adjusting it (i.e., adding bounds to types and default bodies to methods).
+ macro_rules! associated_item {
+- (type FreeFunctions) =>
+- (type FreeFunctions: 'static;);
+ (type TokenStream) =>
+ (type TokenStream: 'static + Clone;);
+ (type TokenStreamBuilder) =>
+diff --git a/crates/proc_macro_srv/src/proc_macro/mod.rs b/crates/proc_macro_srv/src/proc_macro/mod.rs
+index fc6e7344f..ee0dc9722 100644
+--- a/crates/proc_macro_srv/src/proc_macro/mod.rs
++++ b/crates/proc_macro_srv/src/proc_macro/mod.rs
+@@ -924,25 +924,3 @@ impl fmt::Debug for Literal {
+ self.0.fmt(f)
+ }
+ }
+-
+-pub mod tracked_env {
+- use std::env::{self, VarError};
+- use std::ffi::OsStr;
+-
+- /// Retrieve an environment variable and add it to build dependency info.
+- /// Build system executing the compiler will know that the variable was accessed during
+- /// compilation, and will be able to rerun the build when the value of that variable changes.
+- /// Besides the dependency tracking this function should be equivalent to `env::var` from the
+- /// standard library, except that the argument must be UTF-8.
+- pub fn var<K: AsRef<OsStr> + AsRef<str>>(key: K) -> Result<String, VarError> {
+- use std::ops::Deref;
+-
+- let key: &str = key.as_ref();
+- let value = env::var(key);
+- super::bridge::client::FreeFunctions::track_env_var(
+- key,
+- value.as_ref().map(|t| t.deref()).ok(),
+- );
+- value
+- }
+-}
+diff --git a/crates/proc_macro_srv/src/rustc_server.rs b/crates/proc_macro_srv/src/rustc_server.rs
+index c5fe3591e..7d1695c86 100644
+--- a/crates/proc_macro_srv/src/rustc_server.rs
++++ b/crates/proc_macro_srv/src/rustc_server.rs
+@@ -242,8 +242,6 @@ impl TokenStreamBuilder {
+ }
+ }
+
+-pub struct FreeFunctions;
+-
+ #[derive(Clone)]
+ pub struct TokenStreamIter {
+ trees: IntoIter<TokenTree>,
+@@ -256,7 +254,6 @@ pub struct Rustc {
+ }
+
+ impl server::Types for Rustc {
+- type FreeFunctions = FreeFunctions;
+ type TokenStream = TokenStream;
+ type TokenStreamBuilder = TokenStreamBuilder;
+ type TokenStreamIter = TokenStreamIter;
+@@ -270,13 +267,6 @@ impl server::Types for Rustc {
+ type MultiSpan = Vec<Span>;
+ }
+
+-impl server::FreeFunctions for Rustc {
+- fn track_env_var(&mut self, _var: &str, _value: Option<&str>) {
+- // FIXME: track env var accesses
+- // https://github.com/rust-lang/rust/pull/71858
+- }
+-}
+-
+ impl server::TokenStream for Rustc {
+ fn new(&mut self) -> Self::TokenStream {
+ Self::TokenStream::new()
+diff --git a/xtask/src/install.rs b/xtask/src/install.rs
+index fcc4f05e4..d829790d7 100644
+--- a/xtask/src/install.rs
++++ b/xtask/src/install.rs
+@@ -7,7 +7,7 @@ use anyhow::{bail, format_err, Context, Result};
+ use crate::not_bash::{pushd, run};
+
+ // Latest stable, feel free to send a PR if this lags behind.
+-const REQUIRED_RUST_VERSION: u32 = 47;
++const REQUIRED_RUST_VERSION: u32 = 46;
+
+ pub struct InstallCmd {
+ pub client: Option<ClientOpt>,
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh
new file mode 100755
index 000000000000..b0435be72083
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh
@@ -0,0 +1,64 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix-prefetch
+set -euo pipefail
+cd "$(dirname "$0")"
+owner=rust-analyzer
+repo=rust-analyzer
+nixpkgs=../../../../..
+
+# Update lsp
+
+rev=$(
+ curl -s "https://api.github.com/repos/$owner/$repo/releases" |
+ jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output
+)
+old_rev=$(sed -nE 's/.*\brev = "(.*)".*/\1/p' ./default.nix)
+if grep -q 'cargoSha256 = ""' ./default.nix; then
+ old_rev='broken'
+fi
+if [[ "$rev" == "$old_rev" ]]; then
+ echo "Up to date: $rev"
+ exit
+fi
+echo "$old_rev -> $rev"
+
+sha256=$(nix-prefetch -f "$nixpkgs" rust-analyzer-unwrapped.src --rev "$rev")
+# Clear cargoSha256 to avoid inconsistency.
+sed -e "s/rev = \".*\"/rev = \"$rev\"/" \
+ -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" \
+ -e "s/cargoSha256 = \".*\"/cargoSha256 = \"\"/" \
+ --in-place ./default.nix
+node_src="$(nix-build "$nixpkgs" -A rust-analyzer.src --no-out-link)/editors/code"
+
+# Check vscode compatibility
+req_vscode_ver="$(jq '.engines.vscode' "$node_src/package.json" --raw-output)"
+req_vscode_ver="${req_vscode_ver#^}"
+cur_vscode_ver="$(nix eval --raw -f "$nixpkgs" vscode.version)"
+if [[ "$(nix eval "(builtins.compareVersions \"$req_vscode_ver\" \"$cur_vscode_ver\")")" -gt 0 ]]; then
+ echo "vscode $cur_vscode_ver is incompatible with the extension requiring ^$req_vscode_ver"
+ exit 1
+fi
+
+echo "Prebuilding for cargoSha256"
+cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).rust-analyzer-unwrapped.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
+sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
+ --in-place ./default.nix
+
+# Update vscode extension
+
+build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
+# We need devDependencies to build vsix.
+jq '{ name, version, dependencies: (.dependencies + .devDependencies) }' "$node_src/package.json" \
+ >"$build_deps/package.json.new"
+
+if cmp --quiet "$build_deps"/package.json{.new,}; then
+ echo "package.json not changed, skip updating nodePackages"
+ rm "$build_deps"/package.json.new
+else
+ echo "package.json changed, updating nodePackages"
+ mv "$build_deps"/package.json{.new,}
+
+ pushd "../../../node-packages"
+ ./generate.sh
+ popd
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/wrapper.nix
new file mode 100644
index 000000000000..8ca3ff1a6d20
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rust-analyzer/wrapper.nix
@@ -0,0 +1,16 @@
+{ lib, rustPlatform, runCommandNoCC, makeWrapper }:
+
+lib.makeOverridable ({
+ unwrapped,
+ pname ? "rust-analyzer",
+ version ? unwrapped.version,
+ rustcSrc ? rustPlatform.rustcSrc,
+}: runCommandNoCC "${pname}-${version}" {
+ inherit pname version;
+ inherit (unwrapped) src meta;
+ nativeBuildInputs = [ makeWrapper ];
+} ''
+ mkdir -p $out/bin
+ makeWrapper ${unwrapped}/bin/rust-analyzer $out/bin/rust-analyzer \
+ --set-default RUST_SRC_PATH "${rustcSrc}"
+'')
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
new file mode 100644
index 000000000000..13649b387a3e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
@@ -0,0 +1,42 @@
+diff --git a/src/dist/component/package.rs b/src/dist/component/package.rs
+index 3beddf54..0f859b8d 100644
+--- a/src/dist/component/package.rs
++++ b/src/dist/component/package.rs
+@@ -113,6 +113,7 @@ impl Package for DirectoryPackage {
+ } else {
+ builder.move_file(path.clone(), &src_path)?
+ }
++ nix_patchelf_if_needed(&target.prefix().path().join(path.clone()), &src_path)
+ }
+ "dir" => {
+ if self.copy {
+@@ -135,6 +136,29 @@ impl Package for DirectoryPackage {
+ }
+ }
+
++fn nix_patchelf_if_needed(dest_path: &Path, src_path: &Path) {
++ let (is_bin, is_lib) = if let Some(p) = src_path.parent() {
++ (p.ends_with("bin"), p.ends_with("lib"))
++ } else {
++ (false, false)
++ };
++
++ if is_bin {
++ let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++ .arg("--set-interpreter")
++ .arg("@dynamicLinker@")
++ .arg(dest_path)
++ .output();
++ }
++ else if is_lib {
++ let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++ .arg("--set-rpath")
++ .arg("@libPath@")
++ .arg(dest_path)
++ .output();
++ }
++}
++
+ #[derive(Debug)]
+ pub struct TarPackage<'a>(DirectoryPackage, temp::Dir<'a>);
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
new file mode 100644
index 000000000000..e5ef80b87ee4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
@@ -0,0 +1,79 @@
+{ stdenv, lib, runCommand, patchelf
+, fetchFromGitHub, rustPlatform, makeWrapper
+, pkgconfig, curl, zlib, Security, CoreServices }:
+
+let
+ libPath = lib.makeLibraryPath [
+ zlib # libz.so.1
+ ];
+in
+
+rustPlatform.buildRustPackage rec {
+ pname = "rustup";
+ version = "1.22.1";
+
+ src = fetchFromGitHub {
+ owner = "rust-lang";
+ repo = "rustup";
+ rev = version;
+ sha256 = "0nf42pkyn87y0n93vd63bihx74h4bpisv74aqldg3vcav2iv35s1";
+ };
+
+ cargoSha256 = "0ghjrx7y25s6rjp06h0iyv4195x7daj57bqza01i1j4hm5nkhqhi";
+
+ nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+ buildInputs = [
+ curl zlib
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
+
+ cargoBuildFlags = [ "--features no-self-update" ];
+
+ patches = lib.optionals stdenv.isLinux [
+ (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
+ export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+ substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+ --subst-var patchelf \
+ --subst-var dynamicLinker \
+ --subst-var libPath
+ '')
+ ];
+
+ doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
+
+ postInstall = ''
+ pushd $out/bin
+ mv rustup-init rustup
+ binlinks=(
+ cargo rustc rustdoc rust-gdb rust-lldb rls rustfmt cargo-fmt
+ cargo-clippy clippy-driver cargo-miri
+ )
+ for link in ''${binlinks[@]}; do
+ ln -s rustup $link
+ done
+ popd
+
+ wrapProgram $out/bin/rustup --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
+ # tries to create .rustup
+ export HOME=$(mktemp -d)
+ mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
+
+ # generate completion scripts for rustup
+ $out/bin/rustup completions bash rustup > "$out/share/bash-completion/completions/rustup"
+ $out/bin/rustup completions fish rustup > "$out/share/fish/vendor_completions.d/rustup.fish"
+ $out/bin/rustup completions zsh rustup > "$out/share/zsh/site-functions/_rustup"
+
+ # generate completion scripts for cargo
+ # Note: fish completion script is not supported.
+ $out/bin/rustup completions bash cargo > "$out/share/bash-completion/completions/cargo"
+ $out/bin/rustup completions zsh cargo > "$out/share/zsh/site-functions/_cargo"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The Rust toolchain installer";
+ homepage = "https://www.rustup.rs/";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.mic92 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
new file mode 100644
index 000000000000..5cd1f685fc11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/cargo-lock.patch
@@ -0,0 +1,283 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,278 @@
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "backtrace-sys"
++version = "0.1.28"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "bitflags"
++version = "1.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cast"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cc"
++version = "1.0.28"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "clap"
++version = "2.32.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.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.5 (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 = "either"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "error-chain"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inflections"
++version = "1.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "libc"
++version = "0.2.46"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "quote"
++version = "0.3.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "redox_termios"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "strsim"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "svd-parser"
++version = "0.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "svd2rust"
++version = "0.14.0"
++dependencies = [
++ "cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "syn"
++version = "0.11.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "synom"
++version = "0.11.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "termion"
++version = "1.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.10.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.0.4"
++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 = "winapi"
++version = "0.3.6"
++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"
++
++[[package]]
++name = "xml-rs"
++version = "0.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "xmltree"
++version = "0.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[metadata]
++"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
++"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
++"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
++"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
++"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
++"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
++"checksum cast 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "926013f2860c46252efceabb19f4a6b308197505082c609025aa6706c011d427"
++"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749"
++"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
++"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
++"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
++"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
++"checksum inflections 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
++"checksum libc 0.2.46 (registry+https://github.com/rust-lang/crates.io-index)" = "023a4cd09b2ff695f9734c1934145a315594b7986398496841c7031a5a1bbdbd"
++"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
++"checksum redox_syscall 0.1.50 (registry+https://github.com/rust-lang/crates.io-index)" = "52ee9a534dc1301776eff45b4fa92d2c39b1d8c3d3357e6eb593e0d795506fc2"
++"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++"checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619"
++"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
++"checksum svd-parser 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f22b4579485b26262f36086d6b74903befc043a57f8377dfcf05bcf5335cb251"
++"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
++"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
++"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
++"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
++"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
++"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
++"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"
++"checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
++"checksum xmltree 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "472a9d37c7c53ab2391161df5b89b1f3bf76dab6ab150d7941ecbdd832282082"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
new file mode 100644
index 000000000000..348fe6d9c71f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+with rustPlatform;
+
+buildRustPackage rec {
+ pname = "svd2rust";
+ version = "0.14.0";
+
+ src = fetchFromGitHub {
+ owner = "rust-embedded";
+ repo = "svd2rust";
+ rev = "v${version}";
+ sha256 = "1a0ldmjkhyv5c52gcq8p8avkj0cgj1b367w6hm85bxdf5j4y8rra";
+ };
+ cargoPatches = [ ./cargo-lock.patch ];
+
+ cargoSha256 = "0n0xc8b982ra007l6gygssf1n60gfc2rphwyi7n95dbys1chciyg";
+
+ # doc tests fail due to missing dependency
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Generate Rust register maps (`struct`s) from SVD files";
+ homepage = "https://github.com/rust-embedded/svd2rust";
+ license = with licenses; [ mit asl20 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile
new file mode 100644
index 000000000000..e46ea120f725
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'sass'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile.lock
new file mode 100644
index 000000000000..9882e1efcc4f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/Gemfile.lock
@@ -0,0 +1,21 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ ffi (1.10.0)
+ rb-fsevent (0.10.3)
+ rb-inotify (0.10.0)
+ ffi (~> 1.0)
+ sass (3.7.4)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ sass
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sass/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/default.nix
new file mode 100644
index 000000000000..8c76ac4e017b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "sass";
+ gemdir = ./.;
+ exes = [ "sass" "sass-convert" "scss" ];
+
+ passthru.updateScript = bundlerUpdateScript "sass";
+
+ meta = with lib; {
+ description = "Tools and Ruby libraries for the CSS3 extension languages: Sass and SCSS";
+ homepage = "https://sass-lang.com";
+ license = licenses.mit;
+ maintainers = with maintainers; [ romildo manveru nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sass/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/gemset.nix
new file mode 100644
index 000000000000..f4fdc899abf8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sass/gemset.nix
@@ -0,0 +1,55 @@
+{
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+ type = "gem";
+ };
+ version = "1.10.0";
+ };
+ rb-fsevent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+ type = "gem";
+ };
+ version = "0.10.0";
+ };
+ sass = {
+ dependencies = ["sass-listen"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p95lhs0jza5l7hqci1isflxakz83xkj97lkvxl919is0lwhv2w0";
+ type = "gem";
+ };
+ version = "3.7.4";
+ };
+ sass-listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sassc/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sassc/default.nix
new file mode 100644
index 000000000000..373a7ea66658
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sassc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libsass }:
+
+stdenv.mkDerivation rec {
+ pname = "sassc";
+ version = "3.6.1";
+
+ src = fetchFromGitHub {
+ owner = "sass";
+ repo = pname;
+ rev = version;
+ sha256 = "1sxm54mkhs9m4vnl7vn11y17mhzamc403hv3966j1c7p2rbzg5pv";
+ };
+
+ patchPhase = ''
+ export SASSC_VERSION=${version}
+ '';
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ buildInputs = [ libsass ];
+
+ meta = with stdenv.lib; {
+ description = "A front-end for libsass";
+ homepage = "https://github.com/sass/sassc/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ codyopel pjones ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sauce-connect/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sauce-connect/default.nix
new file mode 100644
index 000000000000..9560d45d6815
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sauce-connect/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchurl, zlib, unzip }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+ pname = "sauce-connect";
+ version = "4.5.4";
+
+ src = fetchurl (
+ if stdenv.hostPlatform.system == "x86_64-linux" then {
+ url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
+ sha256 = "1w8fw47q4bzpk5jfagmc0cbp69jdd6jcv2xl1gx91cbp7xd8mcbf";
+ } else if stdenv.hostPlatform.system == "i686-linux" then {
+ url = "https://saucelabs.com/downloads/sc-${version}-linux32.tar.gz";
+ sha256 = "1h9n1mzmrmlrbd0921b0sgg7m8z0w71pdb5sif6h1b9f97cp353x";
+ } else {
+ url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
+ sha256 = "0rkyd402f1n92ad3w1460j1a4m46b29nandv4z6wvg2pasyyf2lj";
+ }
+ );
+
+ buildInputs = [ unzip ];
+
+ patchPhase = stdenv.lib.optionalString stdenv.isLinux ''
+ patchelf \
+ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ --set-rpath "$out/lib:${makeLibraryPath [zlib]}" \
+ bin/sc
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+ cp -r * $out
+ '';
+
+ dontStrip = true;
+
+ meta = {
+ description = "A secure tunneling app for executing tests securely when testing behind firewalls";
+ license = licenses.unfree;
+ homepage = "https://docs.saucelabs.com/reference/sauce-connect/";
+ maintainers = with maintainers; [offline];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scaff/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scaff/default.nix
new file mode 100644
index 000000000000..97f94e2d61b5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scaff/default.nix
@@ -0,0 +1,26 @@
+{ lib, rustPlatform, fetchFromGitLab, pkgconfig, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "scaff";
+ version = "0.1.2";
+
+ src = fetchFromGitLab {
+ owner = "jD91mZM2";
+ repo = pname;
+ rev = version;
+
+ sha256 = "01yf2clf156qv2a6w866a2p8rc2dl8innxnsqrj244x54s1pk27r";
+ };
+
+ cargoSha256 = "1v6580mj70d7cqbjw32slz65lg6c8ficq5mdkfbivs63hqkv4hgx";
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ];
+
+ meta = with lib; {
+ description = "Painless and powerful scaffolding of projects";
+ license = licenses.mit;
+ maintainers = with maintainers; [ jD91mZM2 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scalafix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scalafix/default.nix
new file mode 100644
index 000000000000..aa3a6cfb0dcf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scalafix/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, jdk, jre, coursier, makeWrapper }:
+
+let
+ baseName = "scalafix";
+ version = "0.9.0";
+ deps = stdenv.mkDerivation {
+ name = "${baseName}-deps-${version}";
+ buildCommand = ''
+ export COURSIER_CACHE=$(pwd)
+ ${coursier}/bin/coursier fetch ch.epfl.scala:scalafix-cli_2.12.7:${version} > deps
+ mkdir -p $out/share/java
+ cp $(< deps) $out/share/java/
+ '';
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = "19j260prx7k010nxyvc1m9jj1ncxr73m2cym7if39360v5dc05c0";
+ };
+in
+stdenv.mkDerivation {
+ name = "${baseName}-${version}";
+
+ buildInputs = [ jdk makeWrapper deps ];
+
+ doCheck = true;
+
+ phases = [ "installPhase" "checkPhase" ];
+
+ installPhase = ''
+ makeWrapper ${jre}/bin/java $out/bin/${baseName} \
+ --add-flags "-cp $CLASSPATH scalafix.cli.Cli"
+ '';
+
+ checkPhase = ''
+ $out/bin/${baseName} --version | grep -q "${version}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Refactoring and linting tool for Scala";
+ homepage = "https://scalacenter.github.io/scalafix/";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.tomahna ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scalafmt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scalafmt/default.nix
new file mode 100644
index 000000000000..0f14f52295e8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scalafmt/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, jdk, jre, coursier, makeWrapper }:
+
+let
+ baseName = "scalafmt";
+ version = "2.6.4";
+ deps = stdenv.mkDerivation {
+ name = "${baseName}-deps-${version}";
+ buildCommand = ''
+ export COURSIER_CACHE=$(pwd)
+ ${coursier}/bin/coursier fetch org.scalameta:scalafmt-cli_2.12:${version} > deps
+ mkdir -p $out/share/java
+ cp $(< deps) $out/share/java/
+ '';
+ outputHashMode = "recursive";
+ outputHashAlgo = "sha256";
+ outputHash = "1h19rsxsn2piifillv29nwks2k9l391jwygjbfy8pc0ha8yi63mw";
+ };
+in
+stdenv.mkDerivation {
+ name = "${baseName}-${version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jdk deps ];
+
+ doCheck = true;
+
+ phases = [ "installPhase" "checkPhase" ];
+
+ installPhase = ''
+ makeWrapper ${jre}/bin/java $out/bin/${baseName} \
+ --add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
+ '';
+
+ checkPhase = ''
+ $out/bin/${baseName} --version | grep -q "${version}"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Opinionated code formatter for Scala";
+ homepage = "http://scalameta.org/scalafmt";
+ license = licenses.asl20;
+ maintainers = [ maintainers.markus1189 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scry/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/default.nix
new file mode 100644
index 000000000000..ed823896ad0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/default.nix
@@ -0,0 +1,43 @@
+{ lib, fetchFromGitHub, crystal_0_31, coreutils, shards, makeWrapper, which }:
+
+let crystal = crystal_0_31;
+
+in crystal.buildCrystalPackage rec {
+ pname = "scry";
+ version = "0.8.1";
+
+ src = fetchFromGitHub {
+ owner = "crystal-lang-tools";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0ii4k9l3dgm1c9lllc8ni9dar59lrxik0v9iz7gk3d6v62wwnq79";
+ };
+
+ # we are already testing for this, so we can ignore the failures
+ postPatch = ''
+ rm spec/scry/executable_spec.cr
+ '';
+
+ format = "crystal";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ shardsFile = ./shards.nix;
+
+ crystalBinaries.scry.src = "src/scry.cr";
+
+ postFixup = ''
+ wrapProgram $out/bin/scry \
+ --prefix PATH : ${lib.makeBinPath [ crystal coreutils ]}
+ '';
+
+ # the binary doesn't take any arguments, so this will hang
+ doInstallCheck = false;
+
+ meta = with lib; {
+ description = "Code analysis server for the Crystal programming language";
+ homepage = "https://github.com/crystal-lang-tools/scry";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch
new file mode 100644
index 000000000000..909b790b81a8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/fix_for_crystal_0_28_and_above.patch
@@ -0,0 +1,20 @@
+diff --git a/src/scry/completion_provider.cr b/src/scry/completion_provider.cr
+index 29e0d36..f67438c 100644
+--- a/src/scry/completion_provider.cr
++++ b/src/scry/completion_provider.cr
+@@ -1,4 +1,5 @@
+ require "./log"
++require "compiler/crystal/codegen/target"
+ require "compiler/crystal/crystal_path"
+ require "./completion/*"
+
+diff --git a/src/scry/parse_analyzer.cr b/src/scry/parse_analyzer.cr
+index d87eca4..bbe9ed5 100644
+--- a/src/scry/parse_analyzer.cr
++++ b/src/scry/parse_analyzer.cr
+@@ -1,4 +1,5 @@
+ require "compiler/crystal/syntax"
++require "compiler/crystal/codegen/target"
+ require "compiler/crystal/crystal_path"
+ require "./workspace"
+ require "./text_document"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scry/shards.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/shards.nix
new file mode 100644
index 000000000000..31660ef7cd2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scry/shards.nix
@@ -0,0 +1,8 @@
+{
+ lsp = {
+ owner = "crystal-lang-tools";
+ repo = "lsp";
+ rev = "v0.1.0";
+ sha256 = "1sgsdgm2dmkp92a2lbaf2pgf80gljdlqzp9xkqvwz0rr92la6810";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile
new file mode 100644
index 000000000000..05eac2332f5b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gem "scss_lint"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile.lock
new file mode 100644
index 000000000000..08e2fe4e64db
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ ffi (1.9.25)
+ rake (12.3.1)
+ rb-fsevent (0.10.3)
+ rb-inotify (0.9.10)
+ ffi (>= 0.5.0, < 2)
+ sass (3.7.2)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ scss_lint (0.57.1)
+ rake (>= 0.9, < 13)
+ sass (~> 3.5, >= 3.5.5)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ scss_lint
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/default.nix
new file mode 100644
index 000000000000..866a860905c9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "scss_lint";
+ gemdir = ./.;
+ exes = [ "scss-lint" ];
+
+ passthru.updateScript = bundlerUpdateScript "scss-lint";
+
+ meta = with lib; {
+ description = "A tool to help keep your SCSS files clean and readable";
+ homepage = "https://github.com/brigade/scss-lint";
+ license = licenses.mit;
+ maintainers = with maintainers; [ lovek323 nicknovitski ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/gemset.nix
new file mode 100644
index 000000000000..46747f049396
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/scss-lint/gemset.nix
@@ -0,0 +1,62 @@
+{
+ ffi = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+ type = "gem";
+ };
+ version = "1.9.25";
+ };
+ rake = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+ type = "gem";
+ };
+ version = "12.3.1";
+ };
+ rb-fsevent = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+ type = "gem";
+ };
+ version = "0.10.3";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+ type = "gem";
+ };
+ version = "0.9.10";
+ };
+ sass = {
+ dependencies = ["sass-listen"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1phs6hnd8b95m7n5wbh5bsclmwaajd1sqlgw9fmj72bfqldbmcqa";
+ type = "gem";
+ };
+ version = "3.7.2";
+ };
+ sass-listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ scss_lint = {
+ dependencies = ["rake" "sass"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0dv4ff1lqbgqdx99nwg059c983dhw67kvvjd21f6vf62cjx09lpn";
+ type = "gem";
+ };
+ version = "0.57.1";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sd-local/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sd-local/default.nix
new file mode 100644
index 000000000000..06f6c08feefa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sd-local/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+ pname = "sd-local";
+ version = "1.0.5";
+
+ src = fetchFromGitHub {
+ owner = "screwdriver-cd";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "09j1wcx66sz2b0pps0bgbay5x06lc0d2awxjvd5zi8wqnbsrdq60";
+ };
+
+ vendorSha256 = "1qy51jx181rwim2v53ysgf7rys0nmxsbawvsbh3z1ihh3dlgw5bc";
+
+ subPackages = [ "." ];
+
+ meta = with lib; {
+ description = "screwdriver.cd local mode";
+ homepage = "https://github.com/screwdriver-cd/sd-local";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ midchildan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix
new file mode 100644
index 000000000000..fc743d560168
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, cairo, fontconfig, freetype, gdk-pixbuf, glib
+, glibc, gtk2, libX11, makeWrapper, nspr, nss, pango, unzip, gconf
+, libxcb, libXi, libXrender, libXext
+}:
+let
+ allSpecs = {
+ x86_64-linux = {
+ system = "linux64";
+ sha256 = "0absr1fp2h87gpyw6jxj2f08sbhkkh3pf13145hfyzdvajj5rfjy";
+ };
+
+ x86_64-darwin = {
+ system = "mac64";
+ sha256 = "1p9k92fgyx0xis6r50vhcpx3iws2gaspq3dnpigglv3bj9yg8zvi";
+ };
+ };
+
+ spec = allSpecs.${stdenv.hostPlatform.system}
+ or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}");
+
+ libs = stdenv.lib.makeLibraryPath [
+ stdenv.cc.cc.lib
+ cairo fontconfig freetype
+ gdk-pixbuf glib gtk2 gconf
+ libX11 nspr nss pango libXrender
+ gconf libxcb libXext libXi
+ ];
+in
+stdenv.mkDerivation rec {
+ pname = "chromedriver";
+ version = "85.0.4183.87";
+
+ src = fetchurl {
+ url = "https://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
+ sha256 = spec.sha256;
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper ];
+
+ unpackPhase = "unzip $src";
+
+ installPhase = ''
+ install -m755 -D chromedriver $out/bin/chromedriver
+ '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+ patchelf --set-interpreter ${glibc.out}/lib/ld-linux-x86-64.so.2 $out/bin/chromedriver
+ wrapProgram "$out/bin/chromedriver" --prefix LD_LIBRARY_PATH : "${libs}:\$LD_LIBRARY_PATH"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sites.google.com/a/chromium.org/chromedriver";
+ description = "A WebDriver server for running Selenium tests on Chrome";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.goibhniu maintainers.marsam ];
+ platforms = attrNames allSpecs;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/htmlunit-driver/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/htmlunit-driver/default.nix
new file mode 100644
index 000000000000..400cf24012a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/htmlunit-driver/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+ pname = "htmlunit-driver-standalone";
+ version = "2.27";
+
+ src = fetchurl {
+ url = "https://github.com/SeleniumHQ/htmlunit-driver/releases/download/${version}/htmlunit-driver-${version}-with-dependencies.jar";
+ sha256 = "1sd3cwpamcbq9pv0mvcm8x6minqrlb4i0r12q3jg91girqswm2dp";
+ };
+
+ dontUnpack = true;
+
+ installPhase = "install -D $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar";
+
+ meta = {
+ homepage = "https://github.com/SeleniumHQ/htmlunit-driver";
+ description = "A WebDriver server for running Selenium tests on the HtmlUnit headless browser";
+ maintainers = with maintainers; [ coconnor offline ];
+ platforms = platforms.all;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix
new file mode 100644
index 000000000000..bf9eabec53c0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/selendroid/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, makeWrapper, jdk, selenium-server-standalone }:
+
+with stdenv.lib;
+let
+ name = "selendroid-standalone-${version}";
+ pluginName = "selendroid-grid-plugin-${version}";
+ version = "0.17.0";
+ srcs = {
+ jar = fetchurl {
+ url = "https://github.com/selendroid/selendroid/releases/download/${version}/${name}-with-dependencies.jar";
+ sha256 = "10lxdsgp711pv8r6dk2aagnbvnn1b25zfqjvz7plc73zqhx1dxvw";
+ };
+ gridPlugin = fetchurl {
+ url = "https://search.maven.org/remotecontent?filepath=io/selendroid/selendroid-grid-plugin/${version}/${pluginName}.jar";
+ sha256 = "1x6cjmp2hpghbgbf8vss0qaj2n4sfl29wp3bc4k1s3hnnpccvz70";
+ };
+ };
+in
+stdenv.mkDerivation {
+
+ inherit name;
+ inherit version;
+
+ dontUnpack = true;
+
+ buildInputs = [ jdk makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/lib/selendroid
+ cp ${srcs.jar} $out/share/lib/selendroid/${name}.jar
+ cp ${srcs.gridPlugin} $out/share/lib/selendroid/${pluginName}.jar
+
+ makeWrapper ${jdk}/bin/java $out/bin/selendroid \
+ --add-flags "-jar $out/share/lib/selendroid/${name}.jar"
+ makeWrapper ${jdk}/bin/java $out/bin/selendroid-selenium \
+ --add-flags "-Dfile.encoding=UTF-8" \
+ --add-flags "-cp ${selenium-server-standalone}/share/lib/${selenium-server-standalone.name}/${selenium-server-standalone.name}.jar:$out/share/lib/selendroid/${pluginName}.jar" \
+ --add-flags "org.openqa.grid.selenium.GridLauncherV3" \
+ --add-flags "-role hub" \
+ --add-flags "-capabilityMatcher io.selendroid.grid.SelendroidCapabilityMatcher"
+ '';
+
+ meta = {
+ homepage = "http://selendroid.io/";
+ description = "Test automation for native or hybrid Android apps and the mobile web";
+ maintainers = with maintainers; [ offline ];
+ platforms = platforms.all;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/server/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/server/default.nix
new file mode 100644
index 000000000000..a93275f6e2ed
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/selenium/server/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper, jre
+, htmlunit-driver, chromedriver, chromeSupport ? true }:
+
+with stdenv.lib;
+
+let
+ minorVersion = "3.6";
+ patchVersion = "0";
+
+in stdenv.mkDerivation rec {
+ pname = "selenium-server-standalone";
+ version = "${minorVersion}.${patchVersion}";
+
+ src = fetchurl {
+ url = "http://selenium-release.storage.googleapis.com/${minorVersion}/selenium-server-standalone-${version}.jar";
+ sha256 = "11v340nm8vzqc2bkmbjfm9a7j4dj0bi9bfk8wdpfan0fb8prf772";
+ };
+
+ dontUnpack = true;
+
+ buildInputs = [ jre makeWrapper ];
+
+ installPhase = ''
+ mkdir -p $out/share/lib/${pname}-${version}
+ cp $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar
+ makeWrapper ${jre}/bin/java $out/bin/selenium-server \
+ --add-flags "-cp $out/share/lib/${pname}-${version}/${pname}-${version}.jar:${htmlunit-driver}/share/lib/${htmlunit-driver.name}/${htmlunit-driver.name}.jar" \
+ --add-flags ${optionalString chromeSupport "-Dwebdriver.chrome.driver=${chromedriver}/bin/chromedriver"} \
+ --add-flags "org.openqa.grid.selenium.GridLauncherV3"
+ '';
+
+ meta = {
+ homepage = "http://www.seleniumhq.org/";
+ description = "Selenium Server for remote WebDriver";
+ maintainers = with maintainers; [ coconnor offline ];
+ platforms = platforms.all;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/default.nix
new file mode 100644
index 000000000000..4cc1ec320ccd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/default.nix
@@ -0,0 +1,19 @@
+{ buildSetupcfg, fetchFromGitHub, lib }:
+
+buildSetupcfg rec {
+ info = import ./info.nix;
+ src = fetchFromGitHub {
+ owner = "target";
+ repo = "setupcfg2nix";
+ rev = info.version;
+ sha256 = "1rj227vxybwp9acwnpwg9np964b1qcw2av3qmx00isnrw5vcps8m";
+ };
+ application = true;
+ meta = {
+ description = "Generate nix expressions from setup.cfg for a python package";
+ homepage = "https://github.com/target/setupcfg2nix";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.all;
+ maintainers = [ lib.maintainers.shlevy ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/info.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/info.nix
new file mode 100644
index 000000000000..6b65632bf7d1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/setupcfg2nix/info.nix
@@ -0,0 +1,7 @@
+{
+ pname = ''setupcfg2nix'';
+ version = ''2.0.1'';
+ install_requires = [
+ ''setuptools''
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/shellcheck/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/shellcheck/default.nix
new file mode 100644
index 000000000000..568b9e1e1ddd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/shellcheck/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, lib, haskellPackages, haskell, pandoc }:
+
+# this wraps around the haskell package
+# and puts the documentation into place
+
+let
+ # TODO: move to lib/ in separate PR
+ overrideMeta = drv: overrideFn:
+ let
+ drv' = if drv ? meta then drv else drv // { meta = {}; };
+ pos = (builtins.unsafeGetAttrPos "pname" drv');
+ meta' = drv'.meta // {
+ # copied from the mkDerivation code
+ position = pos.file + ":" + toString pos.line;
+ };
+ in drv' // { meta = meta' // overrideFn meta'; };
+
+ bin = haskell.lib.justStaticExecutables haskellPackages.ShellCheck;
+
+ shellcheck = stdenv.mkDerivation {
+ pname = "shellcheck";
+ version = bin.version;
+
+ inherit (haskellPackages.ShellCheck) meta src;
+
+ nativeBuildInputs = [ pandoc ];
+
+ outputs = [ "bin" "man" "doc" "out" ];
+
+ phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];
+
+ buildPhase = ''
+ pandoc -s -f markdown-smart -t man shellcheck.1.md -o shellcheck.1
+ '';
+
+ installPhase = ''
+ install -Dm755 ${bin}/bin/shellcheck $bin/bin/shellcheck
+ install -Dm644 README.md $doc/share/shellcheck/README.md
+ install -Dm644 shellcheck.1 $man/share/man/man1/shellcheck.1
+ mkdir $out
+ '';
+ };
+
+in
+ overrideMeta shellcheck (old: {
+ maintainers = with lib.maintainers; [ Profpatsch ];
+ outputsToInstall = [ "bin" "man" "doc" ];
+ })
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix
new file mode 100644
index 000000000000..b71e9fb3a99c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sigrok-cli/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, pkgconfig, glib, libsigrok, libsigrokdecode }:
+
+stdenv.mkDerivation rec {
+ name = "sigrok-cli-0.7.1";
+
+ src = fetchurl {
+ url = "https://sigrok.org/download/source/sigrok-cli/${name}.tar.gz";
+ sha256 = "15vpn1psriadcbl6v9swwgws7dva85ld03yv6g1mgm27kx11697m";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ glib libsigrok libsigrokdecode ];
+
+ meta = with stdenv.lib; {
+ description = "Command-line frontend for the sigrok signal analysis software suite";
+ homepage = "https://sigrok.org/";
+ license = licenses.gpl3Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/simavr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/simavr/default.nix
new file mode 100644
index 000000000000..83ae00ce7b66
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/simavr/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, libelf, which, pkgconfig, freeglut
+, avrgcc, avrlibc
+, libGLU, libGL
+, GLUT }:
+
+stdenv.mkDerivation rec {
+ pname = "simavr";
+ version = "1.5";
+
+ src = fetchFromGitHub {
+ owner = "buserror";
+ repo = "simavr";
+ rev = "e0d4de41a72520491a4076b3ed87beb997a395c0";
+ sha256 = "0b2lh6l2niv80dmbm9xkamvnivkbmqw6v97sy29afalrwfxylxla";
+ };
+
+ makeFlags = [
+ "DESTDIR=$(out)"
+ "PREFIX="
+ "AVR_ROOT=${avrlibc}/avr"
+ "SIMAVR_VERSION=${version}"
+ "AVR=avr-"
+ ];
+
+ NIX_CFLAGS_COMPILE = [ "-Wno-error=stringop-truncation" ];
+
+ nativeBuildInputs = [ which pkgconfig avrgcc ];
+ buildInputs = [ libelf freeglut libGLU libGL ]
+ ++ stdenv.lib.optional stdenv.isDarwin GLUT;
+
+ # Hack to avoid TMPDIR in RPATHs.
+ preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
+
+ doCheck = true;
+ checkTarget = "-C tests run_tests";
+
+ meta = with stdenv.lib; {
+ description = "A lean and mean Atmel AVR simulator";
+ homepage = "https://github.com/buserror/simavr";
+ license = licenses.gpl3;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ goodrone ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/skaffold/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/skaffold/default.nix
new file mode 100644
index 000000000000..d0b0bff05be1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/skaffold/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildGoPackage, fetchFromGitHub, installShellFiles }:
+
+buildGoPackage rec {
+ pname = "skaffold";
+ version = "1.15.0";
+
+ goPackagePath = "github.com/GoogleContainerTools/skaffold";
+ subPackages = ["cmd/skaffold"];
+
+ buildFlagsArray = let t = "${goPackagePath}/pkg/skaffold"; in ''
+ -ldflags=
+ -s -w
+ -X ${t}/version.version=v${version}
+ -X ${t}/version.gitCommit=${src.rev}
+ -X ${t}/version.buildDate=unknown
+ '';
+
+ src = fetchFromGitHub {
+ owner = "GoogleContainerTools";
+ repo = "skaffold";
+ rev = "v${version}";
+ sha256 = "0cir9ld61pq1rziw6vyz1ihkq0aylzrsxg1vqb9544rwnbq7z2qs";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/skaffold completion $shell > skaffold.$shell
+ installShellCompletion skaffold.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Easy and Repeatable Kubernetes Development";
+ homepage = "https://skaffold.dev/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ vdemeester ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/skopeo/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/skopeo/default.nix
new file mode 100644
index 000000000000..db5f392b2ce6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, gpgme
+, lvm2
+, btrfs-progs
+, pkg-config
+, go-md2man
+, installShellFiles
+, makeWrapper
+, fuse-overlayfs
+}:
+
+buildGoModule rec {
+ pname = "skopeo";
+ version = "1.2.0";
+
+ src = fetchFromGitHub {
+ rev = "v${version}";
+ owner = "containers";
+ repo = "skopeo";
+ sha256 = "1v7k3ki10i6082r7zswblyirx6zck674y6bw3plssw4p1l2611rd";
+ };
+
+ outputs = [ "out" "man" ];
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
+
+ buildInputs = [ gpgme ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ lvm2 btrfs-progs ];
+
+ buildPhase = ''
+ patchShebangs .
+ make bin/skopeo docs
+ '';
+
+ installPhase = ''
+ install -Dm755 bin/skopeo -t $out/bin
+ installManPage docs/*.[1-9]
+ installShellCompletion --bash completions/bash/skopeo
+ '' + stdenv.lib.optionalString stdenv.isLinux ''
+ wrapProgram $out/bin/skopeo \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ fuse-overlayfs ]}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A command line utility for various operations on container images and image repositories";
+ homepage = "https://github.com/containers/skopeo";
+ maintainers = with maintainers; [ lewo ] ++ teams.podman.members;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.nix
new file mode 100644
index 000000000000..49eea7213bd8
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.nix
@@ -0,0 +1,50 @@
+{stdenv, fetchFromGitHub, zip, unzip, firefox, bash}:
+let
+ s = # Generated upstream information
+ rec {
+ baseName="slimerjs";
+ version="1.0.0";
+ name="${baseName}-${version}";
+ owner = "laurentj";
+ repo = baseName;
+ sha256="1w4sfrv520isbs7r1rlzl5y3idrpad7znw9fc92yz40jlwz7sxs4";
+ rev = version;
+ };
+ buildInputs = [
+ unzip zip
+ ];
+in
+stdenv.mkDerivation {
+ inherit (s) name version;
+ inherit buildInputs;
+ #src = fetchurl {
+ # inherit (s) url sha256;
+ #};
+ #src = fetchgit {
+ # inherit (s) url sha256 rev;
+ #};
+ src = fetchFromGitHub {
+ inherit (s) owner repo rev sha256;
+ };
+ preConfigure = ''
+ test -d src && cd src
+ test -f omni.ja || zip omni.ja -r */
+ '';
+ installPhase = ''
+ mkdir -p "$out"/{bin,share/doc/slimerjs,lib/slimerjs}
+ cp LICENSE README* "$out/share/doc/slimerjs"
+ cp -r * "$out/lib/slimerjs"
+ echo '#!${bash}/bin/bash' >> "$out/bin/slimerjs"
+ echo 'export SLIMERJSLAUNCHER=${firefox}/bin/firefox' >> "$out/bin/slimerjs"
+ echo "'$out/lib/slimerjs/slimerjs' \"\$@\"" >> "$out/bin/slimerjs"
+ chmod a+x "$out/bin/slimerjs"
+ sed -e 's@MaxVersion=[3456][0-9][.]@MaxVersion=99.@' -i "$out/lib/slimerjs/application.ini"
+ '';
+ meta = {
+ inherit (s) version;
+ description = ''Gecko-based programmatically-driven browser'';
+ license = stdenv.lib.licenses.mpl20 ;
+ maintainers = [stdenv.lib.maintainers.raskin];
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream
new file mode 100644
index 000000000000..f2d6b89e51b4
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream
@@ -0,0 +1,2 @@
+url http://slimerjs.org/download.html
+version_link '/slimerjs-[0-9.]+[.]zip$'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream.git b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream.git
new file mode 100644
index 000000000000..3066d5de8293
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/slimerjs/default.upstream.git
@@ -0,0 +1,3 @@
+url https://github.com/laurentj/slimerjs
+target default.nix
+GH_latest
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/so/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/so/default.nix
new file mode 100644
index 000000000000..0ee2359c8413
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/so/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "so";
+ version = "0.4.2";
+
+ src = fetchFromGitHub {
+ owner = "samtay";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "09zswxxli9f5ayjwmvqhkp1yv2s4f435dcfp4cyia1zddbrh2zck";
+ };
+
+ cargoSha256 = "1ddbhy1plag4ckbmlyj47wnky7vgmfa68msl3hl25h1lwmzaf1aq";
+
+ nativeBuildInputs = [ pkg-config ];
+ buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+ libiconv Security
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A TUI interface to the StackExchange network";
+ homepage = "https://github.com/samtay/so";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mredaelli ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix
new file mode 100644
index 000000000000..d44622e7e595
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/solarus-quest-editor/default.nix
@@ -0,0 +1,35 @@
+{ lib, mkDerivation, fetchFromGitLab, cmake, luajit,
+ SDL2, SDL2_image, SDL2_ttf, physfs,
+ openal, libmodplug, libvorbis, solarus,
+ qtbase, qttools, glm }:
+
+mkDerivation rec {
+ pname = "solarus-quest-editor";
+ version = "1.6.4";
+
+ src = fetchFromGitLab {
+ owner = "solarus-games";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1qbc2j9kalk7xqk9j27s7wnm5zawiyjs47xqkqphw683idmzmjzn";
+ };
+
+ buildInputs = [ cmake luajit SDL2
+ SDL2_image SDL2_ttf physfs
+ openal libmodplug libvorbis
+ solarus qtbase qttools glm ];
+
+ meta = with lib; {
+ description = "The editor for the Zelda-like ARPG game engine, Solarus";
+ longDescription = ''
+ Solarus is a game engine for Zelda-like ARPG games written in lua.
+ Many full-fledged games have been writen for the engine.
+ Games can be created easily using the editor.
+ '';
+ homepage = "http://www.solarus-games.org";
+ license = licenses.gpl3;
+ maintainers = [ maintainers.Nate-Devv ];
+ platforms = platforms.linux;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/default.nix
new file mode 100644
index 000000000000..9e41f209cfd6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sourcetrail/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchurl, autoPatchelfHook
+, zlib, expat, dbus, openssl, python3 }:
+
+stdenv.mkDerivation rec {
+ pname = "sourcetrail";
+ version = "2019.3.46";
+
+ src = fetchurl {
+ name = "sourtrail.tar.gz";
+ url = "https://www.sourcetrail.com/downloads/${version}/linux/64bit";
+ sha256 = "0dnkxr3fijcsbn6pd20lyxhr9ns6ji1c4dffly9s16yq4x9ad5r4";
+ };
+
+ nativeBuildInputs = [ autoPatchelfHook ];
+ buildInputs = [ zlib expat dbus stdenv.cc.cc openssl python3 ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/bin $out/opt
+
+ mv -v setup/share $out
+ mv -v data/gui/icon/logo_1024_1024.png $out/share/icons/sourcetrail.png
+ mv -v data/gui/icon/project_256_256.png $out/share/icons/project-sourcetrail.png
+
+ mkdir -p $out/share/sourcetrail/doc
+ mv -v README EULA.txt $out/share/sourcetrail/doc
+ mv -v plugin $out/share/sourcetrail
+
+ cp -rv . $out/opt
+
+ rm $out/opt/lib/libssl.so
+ rm $out/opt/lib/platforms/{libqeglfs.so,libqwebgl.so}
+ ln -s ${openssl}/lib/libssl.so $out/opt/lib/libssl.so
+
+ substituteInPlace \
+ $out/share/applications/sourcetrail.desktop \
+ --replace /usr/bin/ $out/bin/
+
+ cat <<EOF > $out/bin/sourcetrail
+ #! ${stdenv.shell} -e
+
+ # XXX: Sourcetrail somehow copies the initial config files into the home
+ # directory without write permissions. We currently just copy them
+ # ourselves to work around this problem.
+ setup_config() {
+ local src dst
+
+ [ ! -d ~/.config/sourcetrail ] && mkdir -p ~/.config/sourcetrail
+ for src in $out/opt/data/fallback/*; do
+ dst=~/.config/sourcetrail/"\$(basename "\$src")"
+ if [ ! -e "\$dst" ]; then
+ cp -r "\$src" "\$dst"
+ fi
+ done
+
+ chmod -R u+w ~/.config/sourcetrail
+ }
+
+ [ -d "\$HOME" ] && setup_config
+ export PATH="\$PATH:${python3}/bin"
+ exec "$out/opt/Sourcetrail.sh" "\$@"
+ EOF
+
+ chmod +x $out/bin/sourcetrail
+
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://www.sourcetrail.com";
+ description = "A cross-platform source explorer for C/C++ and Java";
+ platforms = [ "x86_64-linux" ];
+ license = licenses.unfree;
+ maintainers = with maintainers; [ midchildan ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/spirv-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/spirv-tools/default.nix
new file mode 100644
index 000000000000..bac10d244422
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/spirv-tools/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, cmake, python3, spirv-headers }:
+let
+ # Update spirv-headers rev in lockstep according to DEPs file
+ version = "2020.2";
+in
+
+stdenv.mkDerivation rec {
+ pname = "spirv-tools";
+ inherit version;
+
+ src = fetchFromGitHub {
+ owner = "KhronosGroup";
+ repo = "SPIRV-Tools";
+ rev = "v${version}";
+ sha256 = "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6";
+ };
+ enableParallelBuilding = true;
+
+ nativeBuildInputs = [ cmake python3 ];
+
+ cmakeFlags = [ "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}" ];
+
+ meta = with stdenv.lib; {
+ inherit (src.meta) homepage;
+ description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
+ license = licenses.asl20;
+ platforms = platforms.linux;
+ maintainers = [ maintainers.ralith ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix
new file mode 100644
index 000000000000..38573e075146
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchzip, jdk, makeWrapper, installShellFiles, coreutils }:
+
+stdenv.mkDerivation rec {
+ pname = "spring-boot-cli";
+ version = "2.3.2";
+
+ src = fetchzip {
+ url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
+ sha256 = "1zqfnxz57234227rp303iwis0mjkkjkpcqnj9jgw78gykjnqdmmq";
+ };
+
+ nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+ installPhase = ''
+ runHook preInstall
+ rm bin/spring.bat
+ installShellCompletion --bash shell-completion/bash/spring
+ installShellCompletion --zsh shell-completion/zsh/_spring
+ rm -r shell-completion
+ cp -r . $out
+ wrapProgram $out/bin/spring \
+ --set JAVA_HOME ${jdk} \
+ --set PATH /bin:${coreutils}/bin:${jdk}/bin
+ runHook postInstall
+ '';
+
+ meta = with stdenv.lib; {
+ description = ''
+ CLI which makes it easy to create spring-based applications
+ '';
+ longDescription = ''
+ Spring Boot makes it easy to create stand-alone, production-grade
+ Spring-based Applications that you can run. We take an opinionated view
+ of the Spring platform and third-party libraries, so that you can get
+ started with minimum fuss. Most Spring Boot applications need very
+ little Spring configuration.
+
+ You can use Spring Boot to create Java applications that can be started
+ by using java -jar or more traditional war deployments. We also provide
+ a command line tool that runs “spring scripts”.
+ '';
+ homepage = "https://spring.io/projects/spring-boot";
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ moaxcp ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile
new file mode 100644
index 000000000000..7f045baeaa01
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'sqlint'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock
new file mode 100644
index 000000000000..a57d1811b19e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ pg_query (1.2.0)
+ sqlint (0.1.10)
+ pg_query (~> 1)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ sqlint
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/default.nix
new file mode 100644
index 000000000000..f9c535cc2baf
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/default.nix
@@ -0,0 +1,35 @@
+{ lib, bundlerApp, fetchurl, bundlerUpdateScript }:
+
+let
+ LIB_PG_QUERY_TAG = "10-1.0.1";
+ libpgQuerySrc = fetchurl {
+ name = "libpg_query.tar.gz";
+ url = "https://codeload.github.com/lfittl/libpg_query/tar.gz/${LIB_PG_QUERY_TAG}";
+ sha256 = "0m5jv134hgw2vcfkqlnw80fr3wmrdvgrvk1ndcx9s44bzi5nsp47";
+ };
+in bundlerApp {
+ pname = "sqlint";
+ gemdir = ./.;
+
+ exes = [ "sqlint" ];
+
+ gemConfig = {
+ pg_query = attrs: {
+ dontBuild = false;
+ postPatch = ''
+ substituteInPlace ext/pg_query/extconf.rb \
+ --replace "#{workdir}/libpg_query.tar.gz" "${libpgQuerySrc}"
+ '';
+ };
+ };
+
+ passthru.updateScript = bundlerUpdateScript "sqlint";
+
+ meta = with lib; {
+ description = "Simple SQL linter";
+ homepage = "https://github.com/purcell/sqlint";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ariutta nicknovitski ];
+ platforms = with platforms; [ "x86_64-linux" "x86_64-darwin" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/gemset.nix
new file mode 100644
index 000000000000..a86277363fbc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sqlint/gemset.nix
@@ -0,0 +1,23 @@
+{
+ pg_query = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0p9s6znavm6v5dwk1hxg9a8h2lrrwh9l0rlk0sy8cx4sq2mq82m1";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ sqlint = {
+ dependencies = ["pg_query"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ds7qsaqi745fda8nliy15is36l1bkfbfkr43q6smpy103xbk44c";
+ type = "gem";
+ };
+ version = "0.1.10";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sqsh/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sqsh/default.nix
new file mode 100644
index 000000000000..d6087cd02244
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sqsh/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, autoreconfHook, freetds, readline, libiconv }:
+
+let
+ mainVersion = "2.5";
+
+in stdenv.mkDerivation rec {
+ pname = "sqsh";
+ version = "${mainVersion}.16.1";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/sqsh/sqsh/sqsh-${mainVersion}/${pname}-${version}.tgz";
+ sha256 = "1wi0hdmhk7l8nrz4j3kaa177mmxyklmzhj7sq1gj4q6fb8v1yr6n";
+ };
+
+ preConfigure = ''
+ export SYBASE=${freetds}
+
+ substituteInPlace src/cmd_connect.c \
+ --replace CS_TDS_80 CS_TDS_73
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ substituteInPlace configure --replace "libct.so" "libct.dylib"
+ '';
+
+ enableParallelBuilding = true;
+
+ buildInputs = [ freetds readline libiconv ];
+
+ nativeBuildInputs = [ autoreconfHook ];
+
+ meta = with stdenv.lib; {
+ description = "Command line tool for querying Sybase/MSSQL databases";
+ longDescription = ''
+ Sqsh (pronounced skwish) is short for SQshelL (pronounced s-q-shell),
+ it is intended as a replacement for the venerable 'isql' program supplied
+ by Sybase.
+ '';
+ license = licenses.gpl2;
+ homepage = "https://sourceforge.net/projects/sqsh/";
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sslmate/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sslmate/default.nix
new file mode 100644
index 000000000000..a6d1ce55fdb7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sslmate/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl, perlPackages, makeWrapper, openssl }:
+
+stdenv.mkDerivation rec {
+ name = "sslmate-1.7.1";
+
+ src = fetchurl {
+ url = "https://packages.sslmate.com/other/${name}.tar.gz";
+ sha256 = "1i56za41cfqlml9g787xqqs0r8jifd3y7ks9nf4k2dhhi4rijkj5";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildInputs = [ perlPackages.perl makeWrapper ];
+
+ postInstall = ''
+ wrapProgram $out/bin/sslmate --prefix PERL5LIB : \
+ "${with perlPackages; makePerlPath [
+ URI
+ JSONPP
+ TermReadKey
+ ]}" \
+ --prefix PATH : "${openssl.bin}/bin"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://sslmate.com";
+ maintainers = [ maintainers.domenkozar ];
+ description = "Easy to buy, deploy, and manage your SSL certs";
+ platforms = platforms.unix;
+ license = licenses.mit; # X11
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/stagit/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/stagit/default.nix
new file mode 100644
index 000000000000..dacee9aa78e1
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/stagit/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, libgit2, fetchgit }:
+
+stdenv.mkDerivation rec {
+ pname = "stagit";
+ version = "0.9.1";
+
+ src = fetchgit {
+ url = "git://git.codemadness.org/stagit";
+ rev = version;
+ sha256 = "0gh28spkry9wbmdj0hmvz3680fvbyzab9cifhj1p76f4fz27rnv9";
+ };
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildInputs = [ libgit2 ];
+
+ meta = with stdenv.lib; {
+ description = "git static site generator";
+ homepage = "https://git.codemadness.org/stagit/";
+ license = licenses.mit;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jb55 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/statik/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/statik/default.nix
new file mode 100644
index 000000000000..f535fa055ed0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/statik/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage {
+ pname = "statik";
+ version = "unstable-2019-07-31";
+ goPackagePath = "github.com/rakyll/statik";
+
+ src = fetchFromGitHub {
+ owner = "rakyll";
+ repo = "statik";
+ rev = "925a23bda946b50bb0804894f340c5da2b95603b";
+ sha256 = "15wwgrprfq36pa13b9anp7097q1fqcad28hirvivybmc011p0fri";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/rakyll/statik";
+ description = "Embed files into a Go executable ";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ chiiruno ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/summon/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/summon/default.nix
new file mode 100644
index 000000000000..e01c60e3a89c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/summon/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub, lib, patchResolver ? true }:
+
+with stdenv.lib;
+
+buildGoModule rec {
+ pname = "summon";
+ version = "0.8.2";
+
+ src = fetchFromGitHub {
+ owner = "cyberark";
+ repo = "summon";
+ rev = "v${version}";
+ sha256 = "1z4xnrncwvp3rfm97zvc0ivvw2fh1hrjhj3rplvidzxjfyasbvwv";
+ };
+
+ vendorSha256 = "1597vrs4b7k6gkmkvf7xnd38rvjixmlcz0j7npmik9nbkm57l74m";
+
+ subPackages = [ "cmd" ];
+
+ # Patches provider resolver to support resolving unqualified names
+ # from $PATH, e.g. `summon -p gopass` instead of `summon -p $(which gopass)`
+ patches = optional patchResolver [ ./resolve-paths.patch ];
+
+ postInstall = ''
+ mv $out/bin/cmd $out/bin/summon
+ '';
+
+ meta = with lib; {
+ description =
+ "CLI that provides on-demand secrets access for common DevOps tools";
+ homepage = "https://cyberark.github.io/summon";
+ license = lib.licenses.mit;
+ maintainers = with maintainers; [ quentini ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch
new file mode 100644
index 000000000000..cd49c50e2bda
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch
@@ -0,0 +1,39 @@
+From dd34727ebfbd59738084eeb7c2a020e40a4d0abe Mon Sep 17 00:00:00 2001
+From: Quentin <Quentin Inkling>
+Date: Mon, 29 Jun 2020 17:35:04 +0300
+Subject: [PATCH] Patch for
+
+---
+ provider/provider.go | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/provider/provider.go b/provider/provider.go
+index c1e28d9..f20fdaa 100644
+--- a/provider/provider.go
++++ b/provider/provider.go
+@@ -78,7 +78,22 @@ func expandPath(provider string) string {
+ if path.Base(provider) != provider {
+ return provider
+ }
++
++ var (
++ stdOut bytes.Buffer
++ stdErr bytes.Buffer
++ )
++ cmd := exec.Command("which", provider)
++ cmd.Stdout = &stdOut
++ cmd.Stderr = &stdErr
++ err := cmd.Run()
++
++ if err == nil {
++ return strings.TrimSpace(stdOut.String())
++ }
++
+ return path.Join(DefaultPath, provider)
++
+ }
+
+ func getDefaultPath() string {
+--
+2.27.0
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/sunxi-tools/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/sunxi-tools/default.nix
new file mode 100644
index 000000000000..5a530c6e9f18
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/sunxi-tools/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkgconfig, libusb1, zlib }:
+
+stdenv.mkDerivation {
+ name = "sunxi-tools-20181113";
+
+ src = fetchFromGitHub {
+ owner = "linux-sunxi";
+ repo = "sunxi-tools";
+ rev = "6d598a0ed714201380e78130213500be6512942b";
+ sha256 = "1yhl6jfl2cws596ymkyhm8h9qkcvp67v8hlh081lsaqv1i8j9yig";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ libusb1 zlib ];
+
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ buildFlags = [ "tools" "misc" ];
+
+ installTargets = [ "install-tools" "install-misc" ];
+
+ meta = with stdenv.lib; {
+ description = "Tools for Allwinner SoC devices";
+ homepage = "http://linux-sunxi.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ elitak ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/swiftformat/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/swiftformat/default.nix
new file mode 100644
index 000000000000..c47955695f5c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/swiftformat/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, runCommand }:
+
+# This derivation is impure: it relies on an Xcode toolchain being installed
+# and available in the expected place. The values of sandboxProfile and
+# hydraPlatforms are copied pretty directly from the MacVim derivation, which
+# is also impure.
+
+stdenv.mkDerivation rec {
+ pname = "swiftformat";
+ version = "0.44.9";
+
+ src = fetchFromGitHub {
+ owner = "nicklockwood";
+ repo = "SwiftFormat";
+ rev = "${version}";
+ sha256 = "0zajvbaf3r02k53lv5zdxf13apc6chnjmj69zkyac48lpnpbcxq6";
+ };
+
+ preConfigure = "LD=$CC";
+
+ buildPhase = ''
+ /usr/bin/xcodebuild -project SwiftFormat.xcodeproj \
+ -scheme "SwiftFormat (Command Line Tool)" \
+ CODE_SIGN_IDENTITY= SYMROOT=build OBJROOT=build
+ '';
+
+ installPhase = ''
+ install -D -m 0555 build/Release/swiftformat $out/bin/swiftformat
+ '';
+
+ sandboxProfile = ''
+ (allow file-read* file-write* process-exec mach-lookup)
+ ; block homebrew dependencies
+ (deny file-read* file-write* process-exec mach-lookup (subpath "/usr/local") (with no-log))
+ '';
+
+ meta = with lib; {
+ description = "A code formatting and linting tool for Swift";
+ homepage = "https://github.com/nicklockwood/SwiftFormat";
+ license = licenses.mit;
+ maintainers = [ maintainers.bdesham ];
+ platforms = platforms.darwin;
+ hydraPlatforms = [];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/Cargo.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/Cargo.nix
new file mode 100644
index 000000000000..b6687f1e929a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/Cargo.nix
@@ -0,0 +1,215 @@
+# Generated by carnix 0.10.0: carnix generate-nix
+{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
+with buildRustCrateHelpers;
+let inherit (lib.lists) fold;
+ inherit (lib.attrsets) recursiveUpdate;
+in
+rec {
+ crates = cratesIO;
+ systemfd = crates.crates.systemfd."0.3.0" deps;
+ __all = [ (systemfd {}) ];
+ deps.aho_corasick."0.6.4" = {
+ memchr = "2.0.1";
+ };
+ deps.ansi_term."0.11.0" = {
+ winapi = "0.3.4";
+ };
+ deps.atty."0.2.10" = {
+ termion = "1.5.1";
+ libc = "0.2.40";
+ winapi = "0.3.4";
+ };
+ deps.backtrace."0.3.7" = {
+ cfg_if = "0.1.3";
+ rustc_demangle = "0.1.8";
+ backtrace_sys = "0.1.16";
+ libc = "0.2.40";
+ winapi = "0.3.4";
+ };
+ deps.backtrace_sys."0.1.16" = {
+ libc = "0.2.40";
+ cc = "1.0.15";
+ };
+ deps.bitflags."1.0.3" = {};
+ deps.byteorder."1.2.3" = {};
+ deps.bytes."0.4.7" = {
+ byteorder = "1.2.3";
+ iovec = "0.1.2";
+ };
+ deps.cc."1.0.15" = {};
+ deps.cfg_if."0.1.3" = {};
+ deps.clap."2.31.2" = {
+ atty = "0.2.10";
+ bitflags = "1.0.3";
+ strsim = "0.7.0";
+ textwrap = "0.9.0";
+ unicode_width = "0.1.4";
+ vec_map = "0.8.1";
+ ansi_term = "0.11.0";
+ };
+ deps.clicolors_control."0.2.0" = {
+ lazy_static = "0.2.11";
+ libc = "0.2.40";
+ kernel32_sys = "0.2.2";
+ winapi = "0.3.4";
+ };
+ deps.console."0.6.1" = {
+ clicolors_control = "0.2.0";
+ lazy_static = "0.2.11";
+ libc = "0.2.40";
+ parking_lot = "0.5.5";
+ regex = "0.2.11";
+ unicode_width = "0.1.4";
+ termios = "0.2.2";
+ winapi = "0.3.4";
+ };
+ deps.failure."0.1.1" = {
+ backtrace = "0.3.7";
+ failure_derive = "0.1.1";
+ };
+ deps.failure_derive."0.1.1" = {
+ quote = "0.3.15";
+ syn = "0.11.11";
+ synstructure = "0.6.1";
+ };
+ deps.fuchsia_zircon."0.3.3" = {
+ bitflags = "1.0.3";
+ fuchsia_zircon_sys = "0.3.3";
+ };
+ deps.fuchsia_zircon_sys."0.3.3" = {};
+ deps.gcc."0.3.54" = {};
+ deps.iovec."0.1.2" = {
+ libc = "0.2.40";
+ winapi = "0.2.8";
+ };
+ deps.kernel32_sys."0.2.2" = {
+ winapi = "0.2.8";
+ winapi_build = "0.1.1";
+ };
+ deps.lazy_static."0.2.11" = {};
+ deps.lazy_static."1.0.0" = {};
+ deps.libc."0.2.40" = {};
+ deps.memchr."2.0.1" = {
+ libc = "0.2.40";
+ };
+ deps.nix."0.10.0" = {
+ bitflags = "1.0.3";
+ bytes = "0.4.7";
+ cfg_if = "0.1.3";
+ libc = "0.2.40";
+ void = "1.0.2";
+ };
+ deps.owning_ref."0.3.3" = {
+ stable_deref_trait = "1.0.0";
+ };
+ deps.parking_lot."0.5.5" = {
+ owning_ref = "0.3.3";
+ parking_lot_core = "0.2.14";
+ };
+ deps.parking_lot_core."0.2.14" = {
+ rand = "0.4.2";
+ smallvec = "0.6.1";
+ libc = "0.2.40";
+ winapi = "0.3.4";
+ };
+ deps.quote."0.3.15" = {};
+ deps.rand."0.4.2" = {
+ fuchsia_zircon = "0.3.3";
+ libc = "0.2.40";
+ winapi = "0.3.4";
+ };
+ deps.redox_syscall."0.1.37" = {};
+ deps.redox_termios."0.1.1" = {
+ redox_syscall = "0.1.37";
+ };
+ deps.regex."0.2.11" = {
+ aho_corasick = "0.6.4";
+ memchr = "2.0.1";
+ regex_syntax = "0.5.6";
+ thread_local = "0.3.5";
+ utf8_ranges = "1.0.0";
+ };
+ deps.regex."1.0.0" = {
+ aho_corasick = "0.6.4";
+ memchr = "2.0.1";
+ regex_syntax = "0.6.0";
+ thread_local = "0.3.5";
+ utf8_ranges = "1.0.0";
+ };
+ deps.regex_syntax."0.5.6" = {
+ ucd_util = "0.1.1";
+ };
+ deps.regex_syntax."0.6.0" = {
+ ucd_util = "0.1.1";
+ };
+ deps.rustc_demangle."0.1.8" = {};
+ deps.smallvec."0.6.1" = {};
+ deps.socket2."0.3.5" = {
+ cfg_if = "0.1.3";
+ libc = "0.2.40";
+ winapi = "0.3.4";
+ };
+ deps.stable_deref_trait."1.0.0" = {};
+ deps.strsim."0.7.0" = {};
+ deps.syn."0.11.11" = {
+ quote = "0.3.15";
+ synom = "0.11.3";
+ unicode_xid = "0.0.4";
+ };
+ deps.synom."0.11.3" = {
+ unicode_xid = "0.0.4";
+ };
+ deps.synstructure."0.6.1" = {
+ quote = "0.3.15";
+ syn = "0.11.11";
+ };
+ deps.systemfd."0.3.0" = {
+ clap = "2.31.2";
+ console = "0.6.1";
+ failure = "0.1.1";
+ failure_derive = "0.1.1";
+ lazy_static = "1.0.0";
+ libc = "0.2.40";
+ regex = "1.0.0";
+ nix = "0.10.0";
+ socket2 = "0.3.5";
+ uuid = "0.6.3";
+ winapi = "0.3.4";
+ };
+ deps.termion."1.5.1" = {
+ libc = "0.2.40";
+ redox_syscall = "0.1.37";
+ redox_termios = "0.1.1";
+ };
+ deps.termios."0.2.2" = {
+ libc = "0.2.40";
+ };
+ deps.textwrap."0.9.0" = {
+ unicode_width = "0.1.4";
+ };
+ deps.thread_local."0.3.5" = {
+ lazy_static = "1.0.0";
+ unreachable = "1.0.0";
+ };
+ deps.ucd_util."0.1.1" = {};
+ deps.unicode_width."0.1.4" = {};
+ deps.unicode_xid."0.0.4" = {};
+ deps.unreachable."1.0.0" = {
+ void = "1.0.2";
+ };
+ deps.utf8_ranges."1.0.0" = {};
+ deps.uuid."0.6.3" = {
+ cfg_if = "0.1.3";
+ rand = "0.4.2";
+ };
+ deps.vec_map."0.8.1" = {};
+ deps.void."1.0.2" = {};
+ deps.winapi."0.2.8" = {};
+ deps.winapi."0.3.4" = {
+ winapi_i686_pc_windows_gnu = "0.4.0";
+ winapi_x86_64_pc_windows_gnu = "0.4.0";
+ };
+ deps.winapi_build."0.1.1" = {};
+ deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
+ deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.list b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.list
new file mode 100644
index 000000000000..0b8371f68a1e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.list
@@ -0,0 +1,62 @@
+aho-corasick-0.6.4
+ansi_term-0.11.0
+atty-0.2.10
+backtrace-0.3.7
+backtrace-sys-0.1.16
+bitflags-1.0.3
+byteorder-1.2.3
+bytes-0.4.7
+cc-1.0.15
+cfg-if-0.1.3
+clap-2.31.2
+clicolors-control-0.2.0
+console-0.6.1
+failure-0.1.1
+failure_derive-0.1.1
+fuchsia-zircon-0.3.3
+fuchsia-zircon-sys-0.3.3
+gcc-0.3.54
+iovec-0.1.2
+kernel32-sys-0.2.2
+lazy_static-0.2.11
+lazy_static-1.0.0
+libc-0.2.40
+memchr-2.0.1
+nix-0.10.0
+owning_ref-0.3.3
+parking_lot-0.5.5
+parking_lot_core-0.2.14
+quote-0.3.15
+rand-0.4.2
+redox_syscall-0.1.37
+redox_termios-0.1.1
+regex-0.2.11
+regex-1.0.0
+regex-syntax-0.5.6
+regex-syntax-0.6.0
+rustc-demangle-0.1.8
+smallvec-0.6.1
+socket2-0.3.5
+stable_deref_trait-1.0.0
+strsim-0.7.0
+syn-0.11.11
+synom-0.11.3
+synstructure-0.6.1
+systemfd-0.3.0
+termion-1.5.1
+termios-0.2.2
+textwrap-0.9.0
+thread_local-0.3.5
+ucd-util-0.1.1
+unicode-width-0.1.4
+unicode-xid-0.0.4
+unreachable-1.0.0
+utf8-ranges-1.0.0
+uuid-0.6.3
+vec_map-0.8.1
+void-1.0.2
+winapi-0.2.8
+winapi-0.3.4
+winapi-build-0.1.1
+winapi-i686-pc-windows-gnu-0.4.0
+winapi-x86_64-pc-windows-gnu-0.4.0
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.nix
new file mode 100644
index 000000000000..7e7b737b8c87
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/crates-io.nix
@@ -0,0 +1,1890 @@
+{ lib, buildRustCrate, buildRustCrateHelpers }:
+with buildRustCrateHelpers;
+let inherit (lib.lists) fold;
+ inherit (lib.attrsets) recursiveUpdate;
+in
+rec {
+
+# aho-corasick-0.6.4
+
+ crates.aho_corasick."0.6.4" = deps: { features?(features_.aho_corasick."0.6.4" deps {}) }: buildRustCrate {
+ crateName = "aho-corasick";
+ version = "0.6.4";
+ description = "Fast multiple substring searching with finite state machines.";
+ authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+ sha256 = "189v919mp6rzzgjp1khpn4zlq8ls81gh43x1lmc8kbkagdlpq888";
+ libName = "aho_corasick";
+ crateBin =
+ [{ name = "aho-corasick-dot"; }];
+ dependencies = mapFeatures features ([
+ (crates."memchr"."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
+ ]);
+ };
+ features_.aho_corasick."0.6.4" = deps: f: updateFeatures f (rec {
+ aho_corasick."0.6.4".default = (f.aho_corasick."0.6.4".default or true);
+ memchr."${deps.aho_corasick."0.6.4".memchr}".default = true;
+ }) [
+ (features_.memchr."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
+ ];
+
+
+# end
+# ansi_term-0.11.0
+
+ crates.ansi_term."0.11.0" = deps: { features?(features_.ansi_term."0.11.0" deps {}) }: buildRustCrate {
+ crateName = "ansi_term";
+ version = "0.11.0";
+ description = "Library for ANSI terminal colours and styles (bold, underline)";
+ authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
+ sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
+ dependencies = (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."ansi_term"."0.11.0"."winapi"}" deps)
+ ]) else []);
+ };
+ features_.ansi_term."0.11.0" = deps: f: updateFeatures f (rec {
+ ansi_term."0.11.0".default = (f.ansi_term."0.11.0".default or true);
+ winapi = fold recursiveUpdate {} [
+ { "${deps.ansi_term."0.11.0".winapi}"."consoleapi" = true; }
+ { "${deps.ansi_term."0.11.0".winapi}"."errhandlingapi" = true; }
+ { "${deps.ansi_term."0.11.0".winapi}"."processenv" = true; }
+ { "${deps.ansi_term."0.11.0".winapi}".default = true; }
+ ];
+ }) [
+ (features_.winapi."${deps."ansi_term"."0.11.0"."winapi"}" deps)
+ ];
+
+
+# end
+# atty-0.2.10
+
+ crates.atty."0.2.10" = deps: { features?(features_.atty."0.2.10" deps {}) }: buildRustCrate {
+ crateName = "atty";
+ version = "0.2.10";
+ description = "A simple interface for querying atty";
+ authors = [ "softprops <d.tangren@gmail.com>" ];
+ sha256 = "1h26lssj8rwaz0xhwwm5a645r49yly211amfmd243m3m0jl49i2c";
+ dependencies = (if kernel == "redox" then mapFeatures features ([
+ (crates."termion"."${deps."atty"."0.2.10"."termion"}" deps)
+ ]) else [])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."libc"."${deps."atty"."0.2.10"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."atty"."0.2.10"."winapi"}" deps)
+ ]) else []);
+ };
+ features_.atty."0.2.10" = deps: f: updateFeatures f (rec {
+ atty."0.2.10".default = (f.atty."0.2.10".default or true);
+ libc."${deps.atty."0.2.10".libc}".default = (f.libc."${deps.atty."0.2.10".libc}".default or false);
+ termion."${deps.atty."0.2.10".termion}".default = true;
+ winapi = fold recursiveUpdate {} [
+ { "${deps.atty."0.2.10".winapi}"."consoleapi" = true; }
+ { "${deps.atty."0.2.10".winapi}"."minwinbase" = true; }
+ { "${deps.atty."0.2.10".winapi}"."minwindef" = true; }
+ { "${deps.atty."0.2.10".winapi}"."processenv" = true; }
+ { "${deps.atty."0.2.10".winapi}"."winbase" = true; }
+ { "${deps.atty."0.2.10".winapi}".default = true; }
+ ];
+ }) [
+ (features_.termion."${deps."atty"."0.2.10"."termion"}" deps)
+ (features_.libc."${deps."atty"."0.2.10"."libc"}" deps)
+ (features_.winapi."${deps."atty"."0.2.10"."winapi"}" deps)
+ ];
+
+
+# end
+# backtrace-0.3.7
+
+ crates.backtrace."0.3.7" = deps: { features?(features_.backtrace."0.3.7" deps {}) }: buildRustCrate {
+ crateName = "backtrace";
+ version = "0.3.7";
+ description = "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
+ sha256 = "00zzcgacv516dlhxkrdw4c8vsx3bwkkdrrzi5pnxrhpd87ambjwn";
+ dependencies = mapFeatures features ([
+ (crates."cfg_if"."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
+ (crates."rustc_demangle"."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
+ ])
+ ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([
+ ]
+ ++ (if features.backtrace."0.3.7".backtrace-sys or false then [ (crates.backtrace_sys."${deps."backtrace"."0.3.7".backtrace_sys}" deps) ] else [])) else [])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."libc"."${deps."backtrace"."0.3.7"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ ]
+ ++ (if features.backtrace."0.3.7".winapi or false then [ (crates.winapi."${deps."backtrace"."0.3.7".winapi}" deps) ] else [])) else []);
+ features = mkFeatures (features."backtrace"."0.3.7" or {});
+ };
+ features_.backtrace."0.3.7" = deps: f: updateFeatures f (rec {
+ backtrace = fold recursiveUpdate {} [
+ { "0.3.7"."addr2line" =
+ (f.backtrace."0.3.7"."addr2line" or false) ||
+ (f.backtrace."0.3.7".gimli-symbolize or false) ||
+ (backtrace."0.3.7"."gimli-symbolize" or false); }
+ { "0.3.7"."backtrace-sys" =
+ (f.backtrace."0.3.7"."backtrace-sys" or false) ||
+ (f.backtrace."0.3.7".libbacktrace or false) ||
+ (backtrace."0.3.7"."libbacktrace" or false); }
+ { "0.3.7"."coresymbolication" =
+ (f.backtrace."0.3.7"."coresymbolication" or false) ||
+ (f.backtrace."0.3.7".default or false) ||
+ (backtrace."0.3.7"."default" or false); }
+ { "0.3.7"."dbghelp" =
+ (f.backtrace."0.3.7"."dbghelp" or false) ||
+ (f.backtrace."0.3.7".default or false) ||
+ (backtrace."0.3.7"."default" or false); }
+ { "0.3.7"."dladdr" =
+ (f.backtrace."0.3.7"."dladdr" or false) ||
+ (f.backtrace."0.3.7".default or false) ||
+ (backtrace."0.3.7"."default" or false); }
+ { "0.3.7"."findshlibs" =
+ (f.backtrace."0.3.7"."findshlibs" or false) ||
+ (f.backtrace."0.3.7".gimli-symbolize or false) ||
+ (backtrace."0.3.7"."gimli-symbolize" or false); }
+ { "0.3.7"."gimli" =
+ (f.backtrace."0.3.7"."gimli" or false) ||
+ (f.backtrace."0.3.7".gimli-symbolize or false) ||
+ (backtrace."0.3.7"."gimli-symbolize" or false); }
+ { "0.3.7"."libbacktrace" =
+ (f.backtrace."0.3.7"."libbacktrace" or false) ||
+ (f.backtrace."0.3.7".default or false) ||
+ (backtrace."0.3.7"."default" or false); }
+ { "0.3.7"."libunwind" =
+ (f.backtrace."0.3.7"."libunwind" or false) ||
+ (f.backtrace."0.3.7".default or false) ||
+ (backtrace."0.3.7"."default" or false); }
+ { "0.3.7"."memmap" =
+ (f.backtrace."0.3.7"."memmap" or false) ||
+ (f.backtrace."0.3.7".gimli-symbolize or false) ||
+ (backtrace."0.3.7"."gimli-symbolize" or false); }
+ { "0.3.7"."object" =
+ (f.backtrace."0.3.7"."object" or false) ||
+ (f.backtrace."0.3.7".gimli-symbolize or false) ||
+ (backtrace."0.3.7"."gimli-symbolize" or false); }
+ { "0.3.7"."rustc-serialize" =
+ (f.backtrace."0.3.7"."rustc-serialize" or false) ||
+ (f.backtrace."0.3.7".serialize-rustc or false) ||
+ (backtrace."0.3.7"."serialize-rustc" or false); }
+ { "0.3.7"."serde" =
+ (f.backtrace."0.3.7"."serde" or false) ||
+ (f.backtrace."0.3.7".serialize-serde or false) ||
+ (backtrace."0.3.7"."serialize-serde" or false); }
+ { "0.3.7"."serde_derive" =
+ (f.backtrace."0.3.7"."serde_derive" or false) ||
+ (f.backtrace."0.3.7".serialize-serde or false) ||
+ (backtrace."0.3.7"."serialize-serde" or false); }
+ { "0.3.7"."winapi" =
+ (f.backtrace."0.3.7"."winapi" or false) ||
+ (f.backtrace."0.3.7".dbghelp or false) ||
+ (backtrace."0.3.7"."dbghelp" or false); }
+ { "0.3.7".default = (f.backtrace."0.3.7".default or true); }
+ ];
+ backtrace_sys."${deps.backtrace."0.3.7".backtrace_sys}".default = true;
+ cfg_if."${deps.backtrace."0.3.7".cfg_if}".default = true;
+ libc."${deps.backtrace."0.3.7".libc}".default = true;
+ rustc_demangle."${deps.backtrace."0.3.7".rustc_demangle}".default = true;
+ winapi = fold recursiveUpdate {} [
+ { "${deps.backtrace."0.3.7".winapi}"."dbghelp" = true; }
+ { "${deps.backtrace."0.3.7".winapi}"."minwindef" = true; }
+ { "${deps.backtrace."0.3.7".winapi}"."processthreadsapi" = true; }
+ { "${deps.backtrace."0.3.7".winapi}"."std" = true; }
+ { "${deps.backtrace."0.3.7".winapi}"."winnt" = true; }
+ { "${deps.backtrace."0.3.7".winapi}".default = true; }
+ ];
+ }) [
+ (features_.cfg_if."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
+ (features_.rustc_demangle."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
+ (features_.backtrace_sys."${deps."backtrace"."0.3.7"."backtrace_sys"}" deps)
+ (features_.libc."${deps."backtrace"."0.3.7"."libc"}" deps)
+ (features_.winapi."${deps."backtrace"."0.3.7"."winapi"}" deps)
+ ];
+
+
+# end
+# backtrace-sys-0.1.16
+
+ crates.backtrace_sys."0.1.16" = deps: { features?(features_.backtrace_sys."0.1.16" deps {}) }: buildRustCrate {
+ crateName = "backtrace-sys";
+ version = "0.1.16";
+ description = "Bindings to the libbacktrace gcc library\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "1cn2c8q3dn06crmnk0p62czkngam4l8nf57wy33nz1y5g25pszwy";
+ build = "build.rs";
+ dependencies = mapFeatures features ([
+ (crates."libc"."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
+ ]);
+
+ buildDependencies = mapFeatures features ([
+ (crates."cc"."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
+ ]);
+ };
+ features_.backtrace_sys."0.1.16" = deps: f: updateFeatures f (rec {
+ backtrace_sys."0.1.16".default = (f.backtrace_sys."0.1.16".default or true);
+ cc."${deps.backtrace_sys."0.1.16".cc}".default = true;
+ libc."${deps.backtrace_sys."0.1.16".libc}".default = true;
+ }) [
+ (features_.libc."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
+ (features_.cc."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
+ ];
+
+
+# end
+# bitflags-1.0.3
+
+ crates.bitflags."1.0.3" = deps: { features?(features_.bitflags."1.0.3" deps {}) }: buildRustCrate {
+ crateName = "bitflags";
+ version = "1.0.3";
+ description = "A macro to generate structures which behave like bitflags.\n";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "162p4w4h1ad76awq6b5yivmls3d50m9cl27d8g588lsps6g8s5rw";
+ features = mkFeatures (features."bitflags"."1.0.3" or {});
+ };
+ features_.bitflags."1.0.3" = deps: f: updateFeatures f (rec {
+ bitflags."1.0.3".default = (f.bitflags."1.0.3".default or true);
+ }) [];
+
+
+# end
+# byteorder-1.2.3
+
+ crates.byteorder."1.2.3" = deps: { features?(features_.byteorder."1.2.3" deps {}) }: buildRustCrate {
+ crateName = "byteorder";
+ version = "1.2.3";
+ description = "Library for reading/writing numbers in big-endian and little-endian.";
+ authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+ sha256 = "1xghv5f5rydzsam8lnfqhfk090i8a1knb77ikbs0ik44bvrw2ij3";
+ features = mkFeatures (features."byteorder"."1.2.3" or {});
+ };
+ features_.byteorder."1.2.3" = deps: f: updateFeatures f (rec {
+ byteorder = fold recursiveUpdate {} [
+ { "1.2.3"."std" =
+ (f.byteorder."1.2.3"."std" or false) ||
+ (f.byteorder."1.2.3".default or false) ||
+ (byteorder."1.2.3"."default" or false); }
+ { "1.2.3".default = (f.byteorder."1.2.3".default or true); }
+ ];
+ }) [];
+
+
+# end
+# bytes-0.4.7
+
+ crates.bytes."0.4.7" = deps: { features?(features_.bytes."0.4.7" deps {}) }: buildRustCrate {
+ crateName = "bytes";
+ version = "0.4.7";
+ description = "Types and traits for working with bytes";
+ authors = [ "Carl Lerche <me@carllerche.com>" ];
+ sha256 = "1icr74r099d0c0a2q1pz51182z7911g92h2j60al351kz78dzv3f";
+ dependencies = mapFeatures features ([
+ (crates."byteorder"."${deps."bytes"."0.4.7"."byteorder"}" deps)
+ (crates."iovec"."${deps."bytes"."0.4.7"."iovec"}" deps)
+ ]);
+ };
+ features_.bytes."0.4.7" = deps: f: updateFeatures f (rec {
+ byteorder."${deps.bytes."0.4.7".byteorder}".default = true;
+ bytes."0.4.7".default = (f.bytes."0.4.7".default or true);
+ iovec."${deps.bytes."0.4.7".iovec}".default = true;
+ }) [
+ (features_.byteorder."${deps."bytes"."0.4.7"."byteorder"}" deps)
+ (features_.iovec."${deps."bytes"."0.4.7"."iovec"}" deps)
+ ];
+
+
+# end
+# cc-1.0.15
+
+ crates.cc."1.0.15" = deps: { features?(features_.cc."1.0.15" deps {}) }: buildRustCrate {
+ crateName = "cc";
+ version = "1.0.15";
+ description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "1zmcv4zf888byhay2qakqlc9b8snhy5ccfs35zb6flywmlj8f2c0";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."cc"."1.0.15" or {});
+ };
+ features_.cc."1.0.15" = deps: f: updateFeatures f (rec {
+ cc = fold recursiveUpdate {} [
+ { "1.0.15"."rayon" =
+ (f.cc."1.0.15"."rayon" or false) ||
+ (f.cc."1.0.15".parallel or false) ||
+ (cc."1.0.15"."parallel" or false); }
+ { "1.0.15".default = (f.cc."1.0.15".default or true); }
+ ];
+ }) [];
+
+
+# end
+# cfg-if-0.1.3
+
+ crates.cfg_if."0.1.3" = deps: { features?(features_.cfg_if."0.1.3" deps {}) }: buildRustCrate {
+ crateName = "cfg-if";
+ version = "0.1.3";
+ description = "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "0hphfz5qg40gr5p18gmgy2rzkqj019lii3n0dy3s0a6lnl9106k6";
+ };
+ features_.cfg_if."0.1.3" = deps: f: updateFeatures f (rec {
+ cfg_if."0.1.3".default = (f.cfg_if."0.1.3".default or true);
+ }) [];
+
+
+# end
+# clap-2.31.2
+
+ crates.clap."2.31.2" = deps: { features?(features_.clap."2.31.2" deps {}) }: buildRustCrate {
+ crateName = "clap";
+ version = "2.31.2";
+ description = "A simple to use, efficient, and full featured Command Line Argument Parser\n";
+ authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+ sha256 = "0r24ziw85a8y1sf2l21y4mvv5qan3rjafcshpyfsjfadqfxsij72";
+ dependencies = mapFeatures features ([
+ (crates."bitflags"."${deps."clap"."2.31.2"."bitflags"}" deps)
+ (crates."textwrap"."${deps."clap"."2.31.2"."textwrap"}" deps)
+ (crates."unicode_width"."${deps."clap"."2.31.2"."unicode_width"}" deps)
+ ]
+ ++ (if features.clap."2.31.2".atty or false then [ (crates.atty."${deps."clap"."2.31.2".atty}" deps) ] else [])
+ ++ (if features.clap."2.31.2".strsim or false then [ (crates.strsim."${deps."clap"."2.31.2".strsim}" deps) ] else [])
+ ++ (if features.clap."2.31.2".vec_map or false then [ (crates.vec_map."${deps."clap"."2.31.2".vec_map}" deps) ] else []))
+ ++ (if !(kernel == "windows") then mapFeatures features ([
+ ]
+ ++ (if features.clap."2.31.2".ansi_term or false then [ (crates.ansi_term."${deps."clap"."2.31.2".ansi_term}" deps) ] else [])) else []);
+ features = mkFeatures (features."clap"."2.31.2" or {});
+ };
+ features_.clap."2.31.2" = deps: f: updateFeatures f (rec {
+ ansi_term."${deps.clap."2.31.2".ansi_term}".default = true;
+ atty."${deps.clap."2.31.2".atty}".default = true;
+ bitflags."${deps.clap."2.31.2".bitflags}".default = true;
+ clap = fold recursiveUpdate {} [
+ { "2.31.2"."ansi_term" =
+ (f.clap."2.31.2"."ansi_term" or false) ||
+ (f.clap."2.31.2".color or false) ||
+ (clap."2.31.2"."color" or false); }
+ { "2.31.2"."atty" =
+ (f.clap."2.31.2"."atty" or false) ||
+ (f.clap."2.31.2".color or false) ||
+ (clap."2.31.2"."color" or false); }
+ { "2.31.2"."clippy" =
+ (f.clap."2.31.2"."clippy" or false) ||
+ (f.clap."2.31.2".lints or false) ||
+ (clap."2.31.2"."lints" or false); }
+ { "2.31.2"."color" =
+ (f.clap."2.31.2"."color" or false) ||
+ (f.clap."2.31.2".default or false) ||
+ (clap."2.31.2"."default" or false); }
+ { "2.31.2"."strsim" =
+ (f.clap."2.31.2"."strsim" or false) ||
+ (f.clap."2.31.2".suggestions or false) ||
+ (clap."2.31.2"."suggestions" or false); }
+ { "2.31.2"."suggestions" =
+ (f.clap."2.31.2"."suggestions" or false) ||
+ (f.clap."2.31.2".default or false) ||
+ (clap."2.31.2"."default" or false); }
+ { "2.31.2"."term_size" =
+ (f.clap."2.31.2"."term_size" or false) ||
+ (f.clap."2.31.2".wrap_help or false) ||
+ (clap."2.31.2"."wrap_help" or false); }
+ { "2.31.2"."vec_map" =
+ (f.clap."2.31.2"."vec_map" or false) ||
+ (f.clap."2.31.2".default or false) ||
+ (clap."2.31.2"."default" or false); }
+ { "2.31.2"."yaml" =
+ (f.clap."2.31.2"."yaml" or false) ||
+ (f.clap."2.31.2".doc or false) ||
+ (clap."2.31.2"."doc" or false); }
+ { "2.31.2"."yaml-rust" =
+ (f.clap."2.31.2"."yaml-rust" or false) ||
+ (f.clap."2.31.2".yaml or false) ||
+ (clap."2.31.2"."yaml" or false); }
+ { "2.31.2".default = (f.clap."2.31.2".default or true); }
+ ];
+ strsim."${deps.clap."2.31.2".strsim}".default = true;
+ textwrap = fold recursiveUpdate {} [
+ { "${deps.clap."2.31.2".textwrap}"."term_size" =
+ (f.textwrap."${deps.clap."2.31.2".textwrap}"."term_size" or false) ||
+ (clap."2.31.2"."wrap_help" or false) ||
+ (f."clap"."2.31.2"."wrap_help" or false); }
+ { "${deps.clap."2.31.2".textwrap}".default = true; }
+ ];
+ unicode_width."${deps.clap."2.31.2".unicode_width}".default = true;
+ vec_map."${deps.clap."2.31.2".vec_map}".default = true;
+ }) [
+ (features_.atty."${deps."clap"."2.31.2"."atty"}" deps)
+ (features_.bitflags."${deps."clap"."2.31.2"."bitflags"}" deps)
+ (features_.strsim."${deps."clap"."2.31.2"."strsim"}" deps)
+ (features_.textwrap."${deps."clap"."2.31.2"."textwrap"}" deps)
+ (features_.unicode_width."${deps."clap"."2.31.2"."unicode_width"}" deps)
+ (features_.vec_map."${deps."clap"."2.31.2"."vec_map"}" deps)
+ (features_.ansi_term."${deps."clap"."2.31.2"."ansi_term"}" deps)
+ ];
+
+
+# end
+# clicolors-control-0.2.0
+
+ crates.clicolors_control."0.2.0" = deps: { features?(features_.clicolors_control."0.2.0" deps {}) }: buildRustCrate {
+ crateName = "clicolors-control";
+ version = "0.2.0";
+ description = "A common utility library to control CLI colorization";
+ authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
+ sha256 = "0p1fbs7k70h58ycahmin7b87c0xn6lc94xmh9jw4gxi40mnrvdkp";
+ dependencies = mapFeatures features ([
+ (crates."lazy_static"."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
+ ])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."libc"."${deps."clicolors_control"."0.2.0"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."kernel32_sys"."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
+ (crates."winapi"."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
+ ]) else []);
+ features = mkFeatures (features."clicolors_control"."0.2.0" or {});
+ };
+ features_.clicolors_control."0.2.0" = deps: f: updateFeatures f (rec {
+ clicolors_control = fold recursiveUpdate {} [
+ { "0.2.0"."terminal_autoconfig" =
+ (f.clicolors_control."0.2.0"."terminal_autoconfig" or false) ||
+ (f.clicolors_control."0.2.0".default or false) ||
+ (clicolors_control."0.2.0"."default" or false); }
+ { "0.2.0".default = (f.clicolors_control."0.2.0".default or true); }
+ ];
+ kernel32_sys."${deps.clicolors_control."0.2.0".kernel32_sys}".default = true;
+ lazy_static."${deps.clicolors_control."0.2.0".lazy_static}".default = true;
+ libc."${deps.clicolors_control."0.2.0".libc}".default = true;
+ winapi = fold recursiveUpdate {} [
+ { "${deps.clicolors_control."0.2.0".winapi}"."consoleapi" = true; }
+ { "${deps.clicolors_control."0.2.0".winapi}"."handleapi" = true; }
+ { "${deps.clicolors_control."0.2.0".winapi}"."processenv" = true; }
+ { "${deps.clicolors_control."0.2.0".winapi}"."winbase" = true; }
+ { "${deps.clicolors_control."0.2.0".winapi}".default = true; }
+ ];
+ }) [
+ (features_.lazy_static."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
+ (features_.libc."${deps."clicolors_control"."0.2.0"."libc"}" deps)
+ (features_.kernel32_sys."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
+ (features_.winapi."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
+ ];
+
+
+# end
+# console-0.6.1
+
+ crates.console."0.6.1" = deps: { features?(features_.console."0.6.1" deps {}) }: buildRustCrate {
+ crateName = "console";
+ version = "0.6.1";
+ description = "A terminal and console abstraction for Rust";
+ authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
+ sha256 = "0h46m3nlx7m2pmc1ia2nlbl8d1vp46kqh2c82hx9ckjag68g4zdl";
+ dependencies = mapFeatures features ([
+ (crates."clicolors_control"."${deps."console"."0.6.1"."clicolors_control"}" deps)
+ (crates."lazy_static"."${deps."console"."0.6.1"."lazy_static"}" deps)
+ (crates."libc"."${deps."console"."0.6.1"."libc"}" deps)
+ (crates."parking_lot"."${deps."console"."0.6.1"."parking_lot"}" deps)
+ (crates."regex"."${deps."console"."0.6.1"."regex"}" deps)
+ (crates."unicode_width"."${deps."console"."0.6.1"."unicode_width"}" deps)
+ ])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."termios"."${deps."console"."0.6.1"."termios"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."console"."0.6.1"."winapi"}" deps)
+ ]) else []);
+ };
+ features_.console."0.6.1" = deps: f: updateFeatures f (rec {
+ clicolors_control."${deps.console."0.6.1".clicolors_control}".default = true;
+ console."0.6.1".default = (f.console."0.6.1".default or true);
+ lazy_static."${deps.console."0.6.1".lazy_static}".default = true;
+ libc."${deps.console."0.6.1".libc}".default = true;
+ parking_lot."${deps.console."0.6.1".parking_lot}".default = true;
+ regex."${deps.console."0.6.1".regex}".default = true;
+ termios."${deps.console."0.6.1".termios}".default = true;
+ unicode_width."${deps.console."0.6.1".unicode_width}".default = true;
+ winapi = fold recursiveUpdate {} [
+ { "${deps.console."0.6.1".winapi}"."consoleapi" = true; }
+ { "${deps.console."0.6.1".winapi}"."processenv" = true; }
+ { "${deps.console."0.6.1".winapi}"."winbase" = true; }
+ { "${deps.console."0.6.1".winapi}"."wincon" = true; }
+ { "${deps.console."0.6.1".winapi}"."winuser" = true; }
+ { "${deps.console."0.6.1".winapi}".default = true; }
+ ];
+ }) [
+ (features_.clicolors_control."${deps."console"."0.6.1"."clicolors_control"}" deps)
+ (features_.lazy_static."${deps."console"."0.6.1"."lazy_static"}" deps)
+ (features_.libc."${deps."console"."0.6.1"."libc"}" deps)
+ (features_.parking_lot."${deps."console"."0.6.1"."parking_lot"}" deps)
+ (features_.regex."${deps."console"."0.6.1"."regex"}" deps)
+ (features_.unicode_width."${deps."console"."0.6.1"."unicode_width"}" deps)
+ (features_.termios."${deps."console"."0.6.1"."termios"}" deps)
+ (features_.winapi."${deps."console"."0.6.1"."winapi"}" deps)
+ ];
+
+
+# end
+# failure-0.1.1
+
+ crates.failure."0.1.1" = deps: { features?(features_.failure."0.1.1" deps {}) }: buildRustCrate {
+ crateName = "failure";
+ version = "0.1.1";
+ description = "Experimental error handling abstraction.";
+ authors = [ "Without Boats <boats@mozilla.com>" ];
+ sha256 = "0gf9cmkm9kc163sszgjksqp5pcgj689lnf2104nn4h4is18nhigk";
+ dependencies = mapFeatures features ([
+ ]
+ ++ (if features.failure."0.1.1".backtrace or false then [ (crates.backtrace."${deps."failure"."0.1.1".backtrace}" deps) ] else [])
+ ++ (if features.failure."0.1.1".failure_derive or false then [ (crates.failure_derive."${deps."failure"."0.1.1".failure_derive}" deps) ] else []));
+ features = mkFeatures (features."failure"."0.1.1" or {});
+ };
+ features_.failure."0.1.1" = deps: f: updateFeatures f (rec {
+ backtrace."${deps.failure."0.1.1".backtrace}".default = true;
+ failure = fold recursiveUpdate {} [
+ { "0.1.1"."backtrace" =
+ (f.failure."0.1.1"."backtrace" or false) ||
+ (f.failure."0.1.1".std or false) ||
+ (failure."0.1.1"."std" or false); }
+ { "0.1.1"."derive" =
+ (f.failure."0.1.1"."derive" or false) ||
+ (f.failure."0.1.1".default or false) ||
+ (failure."0.1.1"."default" or false); }
+ { "0.1.1"."failure_derive" =
+ (f.failure."0.1.1"."failure_derive" or false) ||
+ (f.failure."0.1.1".derive or false) ||
+ (failure."0.1.1"."derive" or false); }
+ { "0.1.1"."std" =
+ (f.failure."0.1.1"."std" or false) ||
+ (f.failure."0.1.1".default or false) ||
+ (failure."0.1.1"."default" or false); }
+ { "0.1.1".default = (f.failure."0.1.1".default or true); }
+ ];
+ failure_derive."${deps.failure."0.1.1".failure_derive}".default = true;
+ }) [
+ (features_.backtrace."${deps."failure"."0.1.1"."backtrace"}" deps)
+ (features_.failure_derive."${deps."failure"."0.1.1"."failure_derive"}" deps)
+ ];
+
+
+# end
+# failure_derive-0.1.1
+
+ crates.failure_derive."0.1.1" = deps: { features?(features_.failure_derive."0.1.1" deps {}) }: buildRustCrate {
+ crateName = "failure_derive";
+ version = "0.1.1";
+ description = "derives for the failure crate";
+ authors = [ "Without Boats <woboats@gmail.com>" ];
+ sha256 = "1w895q4pbyx3rwnhgjwfcayk9ghbi166wc1c3553qh8zkbz52k8i";
+ procMacro = true;
+ dependencies = mapFeatures features ([
+ (crates."quote"."${deps."failure_derive"."0.1.1"."quote"}" deps)
+ (crates."syn"."${deps."failure_derive"."0.1.1"."syn"}" deps)
+ (crates."synstructure"."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
+ ]);
+ features = mkFeatures (features."failure_derive"."0.1.1" or {});
+ };
+ features_.failure_derive."0.1.1" = deps: f: updateFeatures f (rec {
+ failure_derive = fold recursiveUpdate {} [
+ { "0.1.1"."std" =
+ (f.failure_derive."0.1.1"."std" or false) ||
+ (f.failure_derive."0.1.1".default or false) ||
+ (failure_derive."0.1.1"."default" or false); }
+ { "0.1.1".default = (f.failure_derive."0.1.1".default or true); }
+ ];
+ quote."${deps.failure_derive."0.1.1".quote}".default = true;
+ syn."${deps.failure_derive."0.1.1".syn}".default = true;
+ synstructure."${deps.failure_derive."0.1.1".synstructure}".default = true;
+ }) [
+ (features_.quote."${deps."failure_derive"."0.1.1"."quote"}" deps)
+ (features_.syn."${deps."failure_derive"."0.1.1"."syn"}" deps)
+ (features_.synstructure."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
+ ];
+
+
+# end
+# fuchsia-zircon-0.3.3
+
+ crates.fuchsia_zircon."0.3.3" = deps: { features?(features_.fuchsia_zircon."0.3.3" deps {}) }: buildRustCrate {
+ crateName = "fuchsia-zircon";
+ version = "0.3.3";
+ description = "Rust bindings for the Zircon kernel";
+ authors = [ "Raph Levien <raph@google.com>" ];
+ sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
+ dependencies = mapFeatures features ([
+ (crates."bitflags"."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
+ (crates."fuchsia_zircon_sys"."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
+ ]);
+ };
+ features_.fuchsia_zircon."0.3.3" = deps: f: updateFeatures f (rec {
+ bitflags."${deps.fuchsia_zircon."0.3.3".bitflags}".default = true;
+ fuchsia_zircon."0.3.3".default = (f.fuchsia_zircon."0.3.3".default or true);
+ fuchsia_zircon_sys."${deps.fuchsia_zircon."0.3.3".fuchsia_zircon_sys}".default = true;
+ }) [
+ (features_.bitflags."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
+ (features_.fuchsia_zircon_sys."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
+ ];
+
+
+# end
+# fuchsia-zircon-sys-0.3.3
+
+ crates.fuchsia_zircon_sys."0.3.3" = deps: { features?(features_.fuchsia_zircon_sys."0.3.3" deps {}) }: buildRustCrate {
+ crateName = "fuchsia-zircon-sys";
+ version = "0.3.3";
+ description = "Low-level Rust bindings for the Zircon kernel";
+ authors = [ "Raph Levien <raph@google.com>" ];
+ sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
+ };
+ features_.fuchsia_zircon_sys."0.3.3" = deps: f: updateFeatures f (rec {
+ fuchsia_zircon_sys."0.3.3".default = (f.fuchsia_zircon_sys."0.3.3".default or true);
+ }) [];
+
+
+# end
+# gcc-0.3.54
+
+ crates.gcc."0.3.54" = deps: { features?(features_.gcc."0.3.54" deps {}) }: buildRustCrate {
+ crateName = "gcc";
+ version = "0.3.54";
+ description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."gcc"."0.3.54" or {});
+ };
+ features_.gcc."0.3.54" = deps: f: updateFeatures f (rec {
+ gcc = fold recursiveUpdate {} [
+ { "0.3.54"."rayon" =
+ (f.gcc."0.3.54"."rayon" or false) ||
+ (f.gcc."0.3.54".parallel or false) ||
+ (gcc."0.3.54"."parallel" or false); }
+ { "0.3.54".default = (f.gcc."0.3.54".default or true); }
+ ];
+ }) [];
+
+
+# end
+# iovec-0.1.2
+
+ crates.iovec."0.1.2" = deps: { features?(features_.iovec."0.1.2" deps {}) }: buildRustCrate {
+ crateName = "iovec";
+ version = "0.1.2";
+ description = "Portable buffer type for scatter/gather I/O operations\n";
+ authors = [ "Carl Lerche <me@carllerche.com>" ];
+ sha256 = "0vjymmb7wj4v4kza5jjn48fcdb85j3k37y7msjl3ifz0p9yiyp2r";
+ dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."libc"."${deps."iovec"."0.1.2"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."iovec"."0.1.2"."winapi"}" deps)
+ ]) else []);
+ };
+ features_.iovec."0.1.2" = deps: f: updateFeatures f (rec {
+ iovec."0.1.2".default = (f.iovec."0.1.2".default or true);
+ libc."${deps.iovec."0.1.2".libc}".default = true;
+ winapi."${deps.iovec."0.1.2".winapi}".default = true;
+ }) [
+ (features_.libc."${deps."iovec"."0.1.2"."libc"}" deps)
+ (features_.winapi."${deps."iovec"."0.1.2"."winapi"}" deps)
+ ];
+
+
+# end
+# kernel32-sys-0.2.2
+
+ crates.kernel32_sys."0.2.2" = deps: { features?(features_.kernel32_sys."0.2.2" deps {}) }: buildRustCrate {
+ crateName = "kernel32-sys";
+ version = "0.2.2";
+ description = "Contains function definitions for the Windows API library kernel32. See winapi for types and constants.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+ libName = "kernel32";
+ build = "build.rs";
+ dependencies = mapFeatures features ([
+ (crates."winapi"."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
+ ]);
+
+ buildDependencies = mapFeatures features ([
+ (crates."winapi_build"."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
+ ]);
+ };
+ features_.kernel32_sys."0.2.2" = deps: f: updateFeatures f (rec {
+ kernel32_sys."0.2.2".default = (f.kernel32_sys."0.2.2".default or true);
+ winapi."${deps.kernel32_sys."0.2.2".winapi}".default = true;
+ winapi_build."${deps.kernel32_sys."0.2.2".winapi_build}".default = true;
+ }) [
+ (features_.winapi."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
+ (features_.winapi_build."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
+ ];
+
+
+# end
+# lazy_static-0.2.11
+
+ crates.lazy_static."0.2.11" = deps: { features?(features_.lazy_static."0.2.11" deps {}) }: buildRustCrate {
+ crateName = "lazy_static";
+ version = "0.2.11";
+ description = "A macro for declaring lazily evaluated statics in Rust.";
+ authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+ sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."lazy_static"."0.2.11" or {});
+ };
+ features_.lazy_static."0.2.11" = deps: f: updateFeatures f (rec {
+ lazy_static = fold recursiveUpdate {} [
+ { "0.2.11"."compiletest_rs" =
+ (f.lazy_static."0.2.11"."compiletest_rs" or false) ||
+ (f.lazy_static."0.2.11".compiletest or false) ||
+ (lazy_static."0.2.11"."compiletest" or false); }
+ { "0.2.11"."nightly" =
+ (f.lazy_static."0.2.11"."nightly" or false) ||
+ (f.lazy_static."0.2.11".spin_no_std or false) ||
+ (lazy_static."0.2.11"."spin_no_std" or false); }
+ { "0.2.11"."spin" =
+ (f.lazy_static."0.2.11"."spin" or false) ||
+ (f.lazy_static."0.2.11".spin_no_std or false) ||
+ (lazy_static."0.2.11"."spin_no_std" or false); }
+ { "0.2.11".default = (f.lazy_static."0.2.11".default or true); }
+ ];
+ }) [];
+
+
+# end
+# lazy_static-1.0.0
+
+ crates.lazy_static."1.0.0" = deps: { features?(features_.lazy_static."1.0.0" deps {}) }: buildRustCrate {
+ crateName = "lazy_static";
+ version = "1.0.0";
+ description = "A macro for declaring lazily evaluated statics in Rust.";
+ authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+ sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."lazy_static"."1.0.0" or {});
+ };
+ features_.lazy_static."1.0.0" = deps: f: updateFeatures f (rec {
+ lazy_static = fold recursiveUpdate {} [
+ { "1.0.0"."compiletest_rs" =
+ (f.lazy_static."1.0.0"."compiletest_rs" or false) ||
+ (f.lazy_static."1.0.0".compiletest or false) ||
+ (lazy_static."1.0.0"."compiletest" or false); }
+ { "1.0.0"."nightly" =
+ (f.lazy_static."1.0.0"."nightly" or false) ||
+ (f.lazy_static."1.0.0".spin_no_std or false) ||
+ (lazy_static."1.0.0"."spin_no_std" or false); }
+ { "1.0.0"."spin" =
+ (f.lazy_static."1.0.0"."spin" or false) ||
+ (f.lazy_static."1.0.0".spin_no_std or false) ||
+ (lazy_static."1.0.0"."spin_no_std" or false); }
+ { "1.0.0".default = (f.lazy_static."1.0.0".default or true); }
+ ];
+ }) [];
+
+
+# end
+# libc-0.2.40
+
+ crates.libc."0.2.40" = deps: { features?(features_.libc."0.2.40" deps {}) }: buildRustCrate {
+ crateName = "libc";
+ version = "0.2.40";
+ description = "A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "1xfc39237ldzgr8x8wcflgdr8zssi3wif7g2zxc02d94gzkjsw83";
+ features = mkFeatures (features."libc"."0.2.40" or {});
+ };
+ features_.libc."0.2.40" = deps: f: updateFeatures f (rec {
+ libc = fold recursiveUpdate {} [
+ { "0.2.40"."use_std" =
+ (f.libc."0.2.40"."use_std" or false) ||
+ (f.libc."0.2.40".default or false) ||
+ (libc."0.2.40"."default" or false); }
+ { "0.2.40".default = (f.libc."0.2.40".default or true); }
+ ];
+ }) [];
+
+
+# end
+# memchr-2.0.1
+
+ crates.memchr."2.0.1" = deps: { features?(features_.memchr."2.0.1" deps {}) }: buildRustCrate {
+ crateName = "memchr";
+ version = "2.0.1";
+ description = "Safe interface to memchr.";
+ authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+ sha256 = "0ls2y47rjwapjdax6bp974gdp06ggm1v8d1h69wyydmh1nhgm5gr";
+ dependencies = mapFeatures features ([
+ ]
+ ++ (if features.memchr."2.0.1".libc or false then [ (crates.libc."${deps."memchr"."2.0.1".libc}" deps) ] else []));
+ features = mkFeatures (features."memchr"."2.0.1" or {});
+ };
+ features_.memchr."2.0.1" = deps: f: updateFeatures f (rec {
+ libc = fold recursiveUpdate {} [
+ { "${deps.memchr."2.0.1".libc}"."use_std" =
+ (f.libc."${deps.memchr."2.0.1".libc}"."use_std" or false) ||
+ (memchr."2.0.1"."use_std" or false) ||
+ (f."memchr"."2.0.1"."use_std" or false); }
+ { "${deps.memchr."2.0.1".libc}".default = (f.libc."${deps.memchr."2.0.1".libc}".default or false); }
+ ];
+ memchr = fold recursiveUpdate {} [
+ { "2.0.1"."libc" =
+ (f.memchr."2.0.1"."libc" or false) ||
+ (f.memchr."2.0.1".default or false) ||
+ (memchr."2.0.1"."default" or false) ||
+ (f.memchr."2.0.1".use_std or false) ||
+ (memchr."2.0.1"."use_std" or false); }
+ { "2.0.1"."use_std" =
+ (f.memchr."2.0.1"."use_std" or false) ||
+ (f.memchr."2.0.1".default or false) ||
+ (memchr."2.0.1"."default" or false); }
+ { "2.0.1".default = (f.memchr."2.0.1".default or true); }
+ ];
+ }) [
+ (features_.libc."${deps."memchr"."2.0.1"."libc"}" deps)
+ ];
+
+
+# end
+# nix-0.10.0
+
+ crates.nix."0.10.0" = deps: { features?(features_.nix."0.10.0" deps {}) }: buildRustCrate {
+ crateName = "nix";
+ version = "0.10.0";
+ description = "Rust friendly bindings to *nix APIs";
+ authors = [ "The nix-rust Project Developers" ];
+ sha256 = "0ghrbjlc1l21pmldwaz5b5m72xs0m05y1zq5ljlnymn61vbzxsny";
+ dependencies = mapFeatures features ([
+ (crates."bitflags"."${deps."nix"."0.10.0"."bitflags"}" deps)
+ (crates."bytes"."${deps."nix"."0.10.0"."bytes"}" deps)
+ (crates."cfg_if"."${deps."nix"."0.10.0"."cfg_if"}" deps)
+ (crates."libc"."${deps."nix"."0.10.0"."libc"}" deps)
+ (crates."void"."${deps."nix"."0.10.0"."void"}" deps)
+ ])
+ ++ (if kernel == "dragonfly" then mapFeatures features ([
+]) else []);
+ };
+ features_.nix."0.10.0" = deps: f: updateFeatures f (rec {
+ bitflags."${deps.nix."0.10.0".bitflags}".default = true;
+ bytes."${deps.nix."0.10.0".bytes}".default = (f.bytes."${deps.nix."0.10.0".bytes}".default or false);
+ cfg_if."${deps.nix."0.10.0".cfg_if}".default = true;
+ libc."${deps.nix."0.10.0".libc}".default = true;
+ nix."0.10.0".default = (f.nix."0.10.0".default or true);
+ void."${deps.nix."0.10.0".void}".default = true;
+ }) [
+ (features_.bitflags."${deps."nix"."0.10.0"."bitflags"}" deps)
+ (features_.bytes."${deps."nix"."0.10.0"."bytes"}" deps)
+ (features_.cfg_if."${deps."nix"."0.10.0"."cfg_if"}" deps)
+ (features_.libc."${deps."nix"."0.10.0"."libc"}" deps)
+ (features_.void."${deps."nix"."0.10.0"."void"}" deps)
+ ];
+
+
+# end
+# owning_ref-0.3.3
+
+ crates.owning_ref."0.3.3" = deps: { features?(features_.owning_ref."0.3.3" deps {}) }: buildRustCrate {
+ crateName = "owning_ref";
+ version = "0.3.3";
+ description = "A library for creating references that carry their owner with them.";
+ authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+ sha256 = "13ivn0ydc0hf957ix0f5si9nnplzzykbr70hni1qz9m19i9kvmrh";
+ dependencies = mapFeatures features ([
+ (crates."stable_deref_trait"."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
+ ]);
+ };
+ features_.owning_ref."0.3.3" = deps: f: updateFeatures f (rec {
+ owning_ref."0.3.3".default = (f.owning_ref."0.3.3".default or true);
+ stable_deref_trait."${deps.owning_ref."0.3.3".stable_deref_trait}".default = true;
+ }) [
+ (features_.stable_deref_trait."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
+ ];
+
+
+# end
+# parking_lot-0.5.5
+
+ crates.parking_lot."0.5.5" = deps: { features?(features_.parking_lot."0.5.5" deps {}) }: buildRustCrate {
+ crateName = "parking_lot";
+ version = "0.5.5";
+ description = "More compact and efficient implementations of the standard synchronization primitives.";
+ authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+ sha256 = "0balxl593apy0l70z6dzk6c0r9707hgw2c9yav5asjc87dj6fx7l";
+ dependencies = mapFeatures features ([
+ (crates."parking_lot_core"."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
+ ]
+ ++ (if features.parking_lot."0.5.5".owning_ref or false then [ (crates.owning_ref."${deps."parking_lot"."0.5.5".owning_ref}" deps) ] else []));
+ features = mkFeatures (features."parking_lot"."0.5.5" or {});
+ };
+ features_.parking_lot."0.5.5" = deps: f: updateFeatures f (rec {
+ owning_ref."${deps.parking_lot."0.5.5".owning_ref}".default = true;
+ parking_lot = fold recursiveUpdate {} [
+ { "0.5.5"."owning_ref" =
+ (f.parking_lot."0.5.5"."owning_ref" or false) ||
+ (f.parking_lot."0.5.5".default or false) ||
+ (parking_lot."0.5.5"."default" or false); }
+ { "0.5.5".default = (f.parking_lot."0.5.5".default or true); }
+ ];
+ parking_lot_core = fold recursiveUpdate {} [
+ { "${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" =
+ (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" or false) ||
+ (parking_lot."0.5.5"."deadlock_detection" or false) ||
+ (f."parking_lot"."0.5.5"."deadlock_detection" or false); }
+ { "${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" =
+ (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" or false) ||
+ (parking_lot."0.5.5"."nightly" or false) ||
+ (f."parking_lot"."0.5.5"."nightly" or false); }
+ { "${deps.parking_lot."0.5.5".parking_lot_core}".default = true; }
+ ];
+ }) [
+ (features_.owning_ref."${deps."parking_lot"."0.5.5"."owning_ref"}" deps)
+ (features_.parking_lot_core."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
+ ];
+
+
+# end
+# parking_lot_core-0.2.14
+
+ crates.parking_lot_core."0.2.14" = deps: { features?(features_.parking_lot_core."0.2.14" deps {}) }: buildRustCrate {
+ crateName = "parking_lot_core";
+ version = "0.2.14";
+ description = "An advanced API for creating custom synchronization primitives.";
+ authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+ sha256 = "0giypb8ckkpi34p14nfk4b19c7przj4jxs95gs7x2v5ncmi0y286";
+ dependencies = mapFeatures features ([
+ (crates."rand"."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
+ (crates."smallvec"."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
+ ])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."libc"."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
+ ]) else []);
+ features = mkFeatures (features."parking_lot_core"."0.2.14" or {});
+ };
+ features_.parking_lot_core."0.2.14" = deps: f: updateFeatures f (rec {
+ libc."${deps.parking_lot_core."0.2.14".libc}".default = true;
+ parking_lot_core = fold recursiveUpdate {} [
+ { "0.2.14"."backtrace" =
+ (f.parking_lot_core."0.2.14"."backtrace" or false) ||
+ (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
+ (parking_lot_core."0.2.14"."deadlock_detection" or false); }
+ { "0.2.14"."petgraph" =
+ (f.parking_lot_core."0.2.14"."petgraph" or false) ||
+ (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
+ (parking_lot_core."0.2.14"."deadlock_detection" or false); }
+ { "0.2.14"."thread-id" =
+ (f.parking_lot_core."0.2.14"."thread-id" or false) ||
+ (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
+ (parking_lot_core."0.2.14"."deadlock_detection" or false); }
+ { "0.2.14".default = (f.parking_lot_core."0.2.14".default or true); }
+ ];
+ rand."${deps.parking_lot_core."0.2.14".rand}".default = true;
+ smallvec."${deps.parking_lot_core."0.2.14".smallvec}".default = true;
+ winapi = fold recursiveUpdate {} [
+ { "${deps.parking_lot_core."0.2.14".winapi}"."errhandlingapi" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."handleapi" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."minwindef" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."ntstatus" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."winbase" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."winerror" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}"."winnt" = true; }
+ { "${deps.parking_lot_core."0.2.14".winapi}".default = true; }
+ ];
+ }) [
+ (features_.rand."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
+ (features_.smallvec."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
+ (features_.libc."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
+ (features_.winapi."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
+ ];
+
+
+# end
+# quote-0.3.15
+
+ crates.quote."0.3.15" = deps: { features?(features_.quote."0.3.15" deps {}) }: buildRustCrate {
+ crateName = "quote";
+ version = "0.3.15";
+ description = "Quasi-quoting macro quote!(...)";
+ authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+ sha256 = "09il61jv4kd1360spaj46qwyl21fv1qz18fsv2jra8wdnlgl5jsg";
+ };
+ features_.quote."0.3.15" = deps: f: updateFeatures f (rec {
+ quote."0.3.15".default = (f.quote."0.3.15".default or true);
+ }) [];
+
+
+# end
+# rand-0.4.2
+
+ crates.rand."0.4.2" = deps: { features?(features_.rand."0.4.2" deps {}) }: buildRustCrate {
+ crateName = "rand";
+ version = "0.4.2";
+ description = "Random number generators and other randomness functionality.\n";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
+ dependencies = (if kernel == "fuchsia" then mapFeatures features ([
+ (crates."fuchsia_zircon"."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
+ ]) else [])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ ]
+ ++ (if features.rand."0.4.2".libc or false then [ (crates.libc."${deps."rand"."0.4.2".libc}" deps) ] else [])) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."rand"."0.4.2"."winapi"}" deps)
+ ]) else []);
+ features = mkFeatures (features."rand"."0.4.2" or {});
+ };
+ features_.rand."0.4.2" = deps: f: updateFeatures f (rec {
+ fuchsia_zircon."${deps.rand."0.4.2".fuchsia_zircon}".default = true;
+ libc."${deps.rand."0.4.2".libc}".default = true;
+ rand = fold recursiveUpdate {} [
+ { "0.4.2"."i128_support" =
+ (f.rand."0.4.2"."i128_support" or false) ||
+ (f.rand."0.4.2".nightly or false) ||
+ (rand."0.4.2"."nightly" or false); }
+ { "0.4.2"."libc" =
+ (f.rand."0.4.2"."libc" or false) ||
+ (f.rand."0.4.2".std or false) ||
+ (rand."0.4.2"."std" or false); }
+ { "0.4.2"."std" =
+ (f.rand."0.4.2"."std" or false) ||
+ (f.rand."0.4.2".default or false) ||
+ (rand."0.4.2"."default" or false); }
+ { "0.4.2".default = (f.rand."0.4.2".default or true); }
+ ];
+ winapi = fold recursiveUpdate {} [
+ { "${deps.rand."0.4.2".winapi}"."minwindef" = true; }
+ { "${deps.rand."0.4.2".winapi}"."ntsecapi" = true; }
+ { "${deps.rand."0.4.2".winapi}"."profileapi" = true; }
+ { "${deps.rand."0.4.2".winapi}"."winnt" = true; }
+ { "${deps.rand."0.4.2".winapi}".default = true; }
+ ];
+ }) [
+ (features_.fuchsia_zircon."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
+ (features_.libc."${deps."rand"."0.4.2"."libc"}" deps)
+ (features_.winapi."${deps."rand"."0.4.2"."winapi"}" deps)
+ ];
+
+
+# end
+# redox_syscall-0.1.37
+
+ crates.redox_syscall."0.1.37" = deps: { features?(features_.redox_syscall."0.1.37" deps {}) }: buildRustCrate {
+ crateName = "redox_syscall";
+ version = "0.1.37";
+ description = "A Rust library to access raw Redox system calls";
+ authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+ sha256 = "0qa0jl9cr3qp80an8vshp2mcn8rzvwiavs1398hq1vsjw7pc3h2v";
+ libName = "syscall";
+ };
+ features_.redox_syscall."0.1.37" = deps: f: updateFeatures f (rec {
+ redox_syscall."0.1.37".default = (f.redox_syscall."0.1.37".default or true);
+ }) [];
+
+
+# end
+# redox_termios-0.1.1
+
+ crates.redox_termios."0.1.1" = deps: { features?(features_.redox_termios."0.1.1" deps {}) }: buildRustCrate {
+ crateName = "redox_termios";
+ version = "0.1.1";
+ description = "A Rust library to access Redox termios functions";
+ authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+ sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+ libPath = "src/lib.rs";
+ dependencies = mapFeatures features ([
+ (crates."redox_syscall"."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
+ ]);
+ };
+ features_.redox_termios."0.1.1" = deps: f: updateFeatures f (rec {
+ redox_syscall."${deps.redox_termios."0.1.1".redox_syscall}".default = true;
+ redox_termios."0.1.1".default = (f.redox_termios."0.1.1".default or true);
+ }) [
+ (features_.redox_syscall."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
+ ];
+
+
+# end
+# regex-0.2.11
+
+ crates.regex."0.2.11" = deps: { features?(features_.regex."0.2.11" deps {}) }: buildRustCrate {
+ crateName = "regex";
+ version = "0.2.11";
+ description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "0r50cymxdqp0fv1dxd22mjr6y32q450nwacd279p9s7lh0cafijj";
+ dependencies = mapFeatures features ([
+ (crates."aho_corasick"."${deps."regex"."0.2.11"."aho_corasick"}" deps)
+ (crates."memchr"."${deps."regex"."0.2.11"."memchr"}" deps)
+ (crates."regex_syntax"."${deps."regex"."0.2.11"."regex_syntax"}" deps)
+ (crates."thread_local"."${deps."regex"."0.2.11"."thread_local"}" deps)
+ (crates."utf8_ranges"."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
+ ]);
+ features = mkFeatures (features."regex"."0.2.11" or {});
+ };
+ features_.regex."0.2.11" = deps: f: updateFeatures f (rec {
+ aho_corasick."${deps.regex."0.2.11".aho_corasick}".default = true;
+ memchr."${deps.regex."0.2.11".memchr}".default = true;
+ regex = fold recursiveUpdate {} [
+ { "0.2.11"."pattern" =
+ (f.regex."0.2.11"."pattern" or false) ||
+ (f.regex."0.2.11".unstable or false) ||
+ (regex."0.2.11"."unstable" or false); }
+ { "0.2.11".default = (f.regex."0.2.11".default or true); }
+ ];
+ regex_syntax."${deps.regex."0.2.11".regex_syntax}".default = true;
+ thread_local."${deps.regex."0.2.11".thread_local}".default = true;
+ utf8_ranges."${deps.regex."0.2.11".utf8_ranges}".default = true;
+ }) [
+ (features_.aho_corasick."${deps."regex"."0.2.11"."aho_corasick"}" deps)
+ (features_.memchr."${deps."regex"."0.2.11"."memchr"}" deps)
+ (features_.regex_syntax."${deps."regex"."0.2.11"."regex_syntax"}" deps)
+ (features_.thread_local."${deps."regex"."0.2.11"."thread_local"}" deps)
+ (features_.utf8_ranges."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
+ ];
+
+
+# end
+# regex-1.0.0
+
+ crates.regex."1.0.0" = deps: { features?(features_.regex."1.0.0" deps {}) }: buildRustCrate {
+ crateName = "regex";
+ version = "1.0.0";
+ description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "1wynl7jmf6l2fnsayw1bzfh7km4wwqnqfpi8anj7wbhdk17i6j6b";
+ dependencies = mapFeatures features ([
+ (crates."aho_corasick"."${deps."regex"."1.0.0"."aho_corasick"}" deps)
+ (crates."memchr"."${deps."regex"."1.0.0"."memchr"}" deps)
+ (crates."regex_syntax"."${deps."regex"."1.0.0"."regex_syntax"}" deps)
+ (crates."thread_local"."${deps."regex"."1.0.0"."thread_local"}" deps)
+ (crates."utf8_ranges"."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
+ ]);
+ features = mkFeatures (features."regex"."1.0.0" or {});
+ };
+ features_.regex."1.0.0" = deps: f: updateFeatures f (rec {
+ aho_corasick."${deps.regex."1.0.0".aho_corasick}".default = true;
+ memchr."${deps.regex."1.0.0".memchr}".default = true;
+ regex = fold recursiveUpdate {} [
+ { "1.0.0"."pattern" =
+ (f.regex."1.0.0"."pattern" or false) ||
+ (f.regex."1.0.0".unstable or false) ||
+ (regex."1.0.0"."unstable" or false); }
+ { "1.0.0"."use_std" =
+ (f.regex."1.0.0"."use_std" or false) ||
+ (f.regex."1.0.0".default or false) ||
+ (regex."1.0.0"."default" or false); }
+ { "1.0.0".default = (f.regex."1.0.0".default or true); }
+ ];
+ regex_syntax."${deps.regex."1.0.0".regex_syntax}".default = true;
+ thread_local."${deps.regex."1.0.0".thread_local}".default = true;
+ utf8_ranges."${deps.regex."1.0.0".utf8_ranges}".default = true;
+ }) [
+ (features_.aho_corasick."${deps."regex"."1.0.0"."aho_corasick"}" deps)
+ (features_.memchr."${deps."regex"."1.0.0"."memchr"}" deps)
+ (features_.regex_syntax."${deps."regex"."1.0.0"."regex_syntax"}" deps)
+ (features_.thread_local."${deps."regex"."1.0.0"."thread_local"}" deps)
+ (features_.utf8_ranges."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
+ ];
+
+
+# end
+# regex-syntax-0.5.6
+
+ crates.regex_syntax."0.5.6" = deps: { features?(features_.regex_syntax."0.5.6" deps {}) }: buildRustCrate {
+ crateName = "regex-syntax";
+ version = "0.5.6";
+ description = "A regular expression parser.";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "10vf3r34bgjnbrnqd5aszn35bjvm8insw498l1vjy8zx5yms3427";
+ dependencies = mapFeatures features ([
+ (crates."ucd_util"."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
+ ]);
+ };
+ features_.regex_syntax."0.5.6" = deps: f: updateFeatures f (rec {
+ regex_syntax."0.5.6".default = (f.regex_syntax."0.5.6".default or true);
+ ucd_util."${deps.regex_syntax."0.5.6".ucd_util}".default = true;
+ }) [
+ (features_.ucd_util."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
+ ];
+
+
+# end
+# regex-syntax-0.6.0
+
+ crates.regex_syntax."0.6.0" = deps: { features?(features_.regex_syntax."0.6.0" deps {}) }: buildRustCrate {
+ crateName = "regex-syntax";
+ version = "0.6.0";
+ description = "A regular expression parser.";
+ authors = [ "The Rust Project Developers" ];
+ sha256 = "1zlaq3y1zbiqilxbh0471bizcs4p14b58nqr815w3ssyam169cy6";
+ dependencies = mapFeatures features ([
+ (crates."ucd_util"."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
+ ]);
+ };
+ features_.regex_syntax."0.6.0" = deps: f: updateFeatures f (rec {
+ regex_syntax."0.6.0".default = (f.regex_syntax."0.6.0".default or true);
+ ucd_util."${deps.regex_syntax."0.6.0".ucd_util}".default = true;
+ }) [
+ (features_.ucd_util."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
+ ];
+
+
+# end
+# rustc-demangle-0.1.8
+
+ crates.rustc_demangle."0.1.8" = deps: { features?(features_.rustc_demangle."0.1.8" deps {}) }: buildRustCrate {
+ crateName = "rustc-demangle";
+ version = "0.1.8";
+ description = "Rust compiler symbol demangling.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "0xn5l86qfwngmdsjbglj30wh37zplvch96jl9raysl3k06gkkv3c";
+ };
+ features_.rustc_demangle."0.1.8" = deps: f: updateFeatures f (rec {
+ rustc_demangle."0.1.8".default = (f.rustc_demangle."0.1.8".default or true);
+ }) [];
+
+
+# end
+# smallvec-0.6.1
+
+ crates.smallvec."0.6.1" = deps: { features?(features_.smallvec."0.6.1" deps {}) }: buildRustCrate {
+ crateName = "smallvec";
+ version = "0.6.1";
+ description = "'Small vector' optimization: store up to a small number of items on the stack";
+ authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
+ sha256 = "16m07xh67xcdpwjkbzbv9d7visxmz4fb4a8jfcrsrf333w7vkl1g";
+ libPath = "lib.rs";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."smallvec"."0.6.1" or {});
+ };
+ features_.smallvec."0.6.1" = deps: f: updateFeatures f (rec {
+ smallvec = fold recursiveUpdate {} [
+ { "0.6.1"."std" =
+ (f.smallvec."0.6.1"."std" or false) ||
+ (f.smallvec."0.6.1".default or false) ||
+ (smallvec."0.6.1"."default" or false); }
+ { "0.6.1".default = (f.smallvec."0.6.1".default or true); }
+ ];
+ }) [];
+
+
+# end
+# socket2-0.3.5
+
+ crates.socket2."0.3.5" = deps: { features?(features_.socket2."0.3.5" deps {}) }: buildRustCrate {
+ crateName = "socket2";
+ version = "0.3.5";
+ description = "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+ sha256 = "0bi6z6qvra16rwm3lk7xz4aakvcmmak6fpdmra1v7ccp40bss0kf";
+ dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."cfg_if"."${deps."socket2"."0.3.5"."cfg_if"}" deps)
+ (crates."libc"."${deps."socket2"."0.3.5"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."winapi"."${deps."socket2"."0.3.5"."winapi"}" deps)
+ ]) else []);
+ features = mkFeatures (features."socket2"."0.3.5" or {});
+ };
+ features_.socket2."0.3.5" = deps: f: updateFeatures f (rec {
+ cfg_if."${deps.socket2."0.3.5".cfg_if}".default = true;
+ libc."${deps.socket2."0.3.5".libc}".default = true;
+ socket2."0.3.5".default = (f.socket2."0.3.5".default or true);
+ winapi = fold recursiveUpdate {} [
+ { "${deps.socket2."0.3.5".winapi}"."handleapi" = true; }
+ { "${deps.socket2."0.3.5".winapi}"."minwindef" = true; }
+ { "${deps.socket2."0.3.5".winapi}"."ws2def" = true; }
+ { "${deps.socket2."0.3.5".winapi}"."ws2ipdef" = true; }
+ { "${deps.socket2."0.3.5".winapi}"."ws2tcpip" = true; }
+ { "${deps.socket2."0.3.5".winapi}".default = true; }
+ ];
+ }) [
+ (features_.cfg_if."${deps."socket2"."0.3.5"."cfg_if"}" deps)
+ (features_.libc."${deps."socket2"."0.3.5"."libc"}" deps)
+ (features_.winapi."${deps."socket2"."0.3.5"."winapi"}" deps)
+ ];
+
+
+# end
+# stable_deref_trait-1.0.0
+
+ crates.stable_deref_trait."1.0.0" = deps: { features?(features_.stable_deref_trait."1.0.0" deps {}) }: buildRustCrate {
+ crateName = "stable_deref_trait";
+ version = "1.0.0";
+ description = "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n";
+ authors = [ "Robert Grosse <n210241048576@gmail.com>" ];
+ sha256 = "0ya5fms9qdwkd52d3a111w4vcz18j4rbfx4p88z44116cqd6cczr";
+ features = mkFeatures (features."stable_deref_trait"."1.0.0" or {});
+ };
+ features_.stable_deref_trait."1.0.0" = deps: f: updateFeatures f (rec {
+ stable_deref_trait = fold recursiveUpdate {} [
+ { "1.0.0"."std" =
+ (f.stable_deref_trait."1.0.0"."std" or false) ||
+ (f.stable_deref_trait."1.0.0".default or false) ||
+ (stable_deref_trait."1.0.0"."default" or false); }
+ { "1.0.0".default = (f.stable_deref_trait."1.0.0".default or true); }
+ ];
+ }) [];
+
+
+# end
+# strsim-0.7.0
+
+ crates.strsim."0.7.0" = deps: { features?(features_.strsim."0.7.0" deps {}) }: buildRustCrate {
+ crateName = "strsim";
+ version = "0.7.0";
+ description = "Implementations of string similarity metrics.\nIncludes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, and Jaro-Winkler.\n";
+ authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+ sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
+ };
+ features_.strsim."0.7.0" = deps: f: updateFeatures f (rec {
+ strsim."0.7.0".default = (f.strsim."0.7.0".default or true);
+ }) [];
+
+
+# end
+# syn-0.11.11
+
+ crates.syn."0.11.11" = deps: { features?(features_.syn."0.11.11" deps {}) }: buildRustCrate {
+ crateName = "syn";
+ version = "0.11.11";
+ description = "Nom parser for Rust source code";
+ authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+ sha256 = "0yw8ng7x1dn5a6ykg0ib49y7r9nhzgpiq2989rqdp7rdz3n85502";
+ dependencies = mapFeatures features ([
+ ]
+ ++ (if features.syn."0.11.11".quote or false then [ (crates.quote."${deps."syn"."0.11.11".quote}" deps) ] else [])
+ ++ (if features.syn."0.11.11".synom or false then [ (crates.synom."${deps."syn"."0.11.11".synom}" deps) ] else [])
+ ++ (if features.syn."0.11.11".unicode-xid or false then [ (crates.unicode_xid."${deps."syn"."0.11.11".unicode_xid}" deps) ] else []));
+ features = mkFeatures (features."syn"."0.11.11" or {});
+ };
+ features_.syn."0.11.11" = deps: f: updateFeatures f (rec {
+ quote."${deps.syn."0.11.11".quote}".default = true;
+ syn = fold recursiveUpdate {} [
+ { "0.11.11"."parsing" =
+ (f.syn."0.11.11"."parsing" or false) ||
+ (f.syn."0.11.11".default or false) ||
+ (syn."0.11.11"."default" or false); }
+ { "0.11.11"."printing" =
+ (f.syn."0.11.11"."printing" or false) ||
+ (f.syn."0.11.11".default or false) ||
+ (syn."0.11.11"."default" or false); }
+ { "0.11.11"."quote" =
+ (f.syn."0.11.11"."quote" or false) ||
+ (f.syn."0.11.11".printing or false) ||
+ (syn."0.11.11"."printing" or false); }
+ { "0.11.11"."synom" =
+ (f.syn."0.11.11"."synom" or false) ||
+ (f.syn."0.11.11".parsing or false) ||
+ (syn."0.11.11"."parsing" or false); }
+ { "0.11.11"."unicode-xid" =
+ (f.syn."0.11.11"."unicode-xid" or false) ||
+ (f.syn."0.11.11".parsing or false) ||
+ (syn."0.11.11"."parsing" or false); }
+ { "0.11.11".default = (f.syn."0.11.11".default or true); }
+ ];
+ synom."${deps.syn."0.11.11".synom}".default = true;
+ unicode_xid."${deps.syn."0.11.11".unicode_xid}".default = true;
+ }) [
+ (features_.quote."${deps."syn"."0.11.11"."quote"}" deps)
+ (features_.synom."${deps."syn"."0.11.11"."synom"}" deps)
+ (features_.unicode_xid."${deps."syn"."0.11.11"."unicode_xid"}" deps)
+ ];
+
+
+# end
+# synom-0.11.3
+
+ crates.synom."0.11.3" = deps: { features?(features_.synom."0.11.3" deps {}) }: buildRustCrate {
+ crateName = "synom";
+ version = "0.11.3";
+ description = "Stripped-down Nom parser used by Syn";
+ authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+ sha256 = "1l6d1s9qjfp6ng2s2z8219igvlv7gyk8gby97sdykqc1r93d8rhc";
+ dependencies = mapFeatures features ([
+ (crates."unicode_xid"."${deps."synom"."0.11.3"."unicode_xid"}" deps)
+ ]);
+ };
+ features_.synom."0.11.3" = deps: f: updateFeatures f (rec {
+ synom."0.11.3".default = (f.synom."0.11.3".default or true);
+ unicode_xid."${deps.synom."0.11.3".unicode_xid}".default = true;
+ }) [
+ (features_.unicode_xid."${deps."synom"."0.11.3"."unicode_xid"}" deps)
+ ];
+
+
+# end
+# synstructure-0.6.1
+
+ crates.synstructure."0.6.1" = deps: { features?(features_.synstructure."0.6.1" deps {}) }: buildRustCrate {
+ crateName = "synstructure";
+ version = "0.6.1";
+ description = "expand_substructure-like helpers for syn macros 1.1 derive macros";
+ authors = [ "Michael Layzell <michael@thelayzells.com>" ];
+ sha256 = "1xnyw58va9zcqi4vvpnmpllacdj2a0mvy0cbd698izmr4qs92xlk";
+ dependencies = mapFeatures features ([
+ (crates."quote"."${deps."synstructure"."0.6.1"."quote"}" deps)
+ (crates."syn"."${deps."synstructure"."0.6.1"."syn"}" deps)
+ ]);
+ features = mkFeatures (features."synstructure"."0.6.1" or {});
+ };
+ features_.synstructure."0.6.1" = deps: f: updateFeatures f (rec {
+ quote."${deps.synstructure."0.6.1".quote}".default = true;
+ syn = fold recursiveUpdate {} [
+ { "${deps.synstructure."0.6.1".syn}"."visit" = true; }
+ { "${deps.synstructure."0.6.1".syn}".default = true; }
+ ];
+ synstructure."0.6.1".default = (f.synstructure."0.6.1".default or true);
+ }) [
+ (features_.quote."${deps."synstructure"."0.6.1"."quote"}" deps)
+ (features_.syn."${deps."synstructure"."0.6.1"."syn"}" deps)
+ ];
+
+
+# end
+# systemfd-0.3.0
+
+ crates.systemfd."0.3.0" = deps: { features?(features_.systemfd."0.3.0" deps {}) }: buildRustCrate {
+ crateName = "systemfd";
+ version = "0.3.0";
+ description = "A convenient helper for passing sockets into another process. Best to be combined with listenfd and cargo-watch.";
+ authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
+ sha256 = "0dpckgb0afyzhbv8lccgzmw5yczpfcdsdlqsfncn1vcxvcf0yb5i";
+ dependencies = mapFeatures features ([
+ (crates."clap"."${deps."systemfd"."0.3.0"."clap"}" deps)
+ (crates."console"."${deps."systemfd"."0.3.0"."console"}" deps)
+ (crates."failure"."${deps."systemfd"."0.3.0"."failure"}" deps)
+ (crates."failure_derive"."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
+ (crates."lazy_static"."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
+ (crates."libc"."${deps."systemfd"."0.3.0"."libc"}" deps)
+ (crates."regex"."${deps."systemfd"."0.3.0"."regex"}" deps)
+ ])
+ ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
+ (crates."nix"."${deps."systemfd"."0.3.0"."nix"}" deps)
+ ]) else [])
+ ++ (if kernel == "windows" then mapFeatures features ([
+ (crates."socket2"."${deps."systemfd"."0.3.0"."socket2"}" deps)
+ (crates."uuid"."${deps."systemfd"."0.3.0"."uuid"}" deps)
+ (crates."winapi"."${deps."systemfd"."0.3.0"."winapi"}" deps)
+ ]) else []);
+ };
+ features_.systemfd."0.3.0" = deps: f: updateFeatures f (rec {
+ clap."${deps.systemfd."0.3.0".clap}".default = true;
+ console."${deps.systemfd."0.3.0".console}".default = true;
+ failure."${deps.systemfd."0.3.0".failure}".default = true;
+ failure_derive."${deps.systemfd."0.3.0".failure_derive}".default = true;
+ lazy_static."${deps.systemfd."0.3.0".lazy_static}".default = true;
+ libc."${deps.systemfd."0.3.0".libc}".default = true;
+ nix."${deps.systemfd."0.3.0".nix}".default = true;
+ regex."${deps.systemfd."0.3.0".regex}".default = true;
+ socket2."${deps.systemfd."0.3.0".socket2}".default = true;
+ systemfd."0.3.0".default = (f.systemfd."0.3.0".default or true);
+ uuid = fold recursiveUpdate {} [
+ { "${deps.systemfd."0.3.0".uuid}"."v4" = true; }
+ { "${deps.systemfd."0.3.0".uuid}".default = true; }
+ ];
+ winapi = fold recursiveUpdate {} [
+ { "${deps.systemfd."0.3.0".winapi}"."winsock2" = true; }
+ { "${deps.systemfd."0.3.0".winapi}".default = true; }
+ ];
+ }) [
+ (features_.clap."${deps."systemfd"."0.3.0"."clap"}" deps)
+ (features_.console."${deps."systemfd"."0.3.0"."console"}" deps)
+ (features_.failure."${deps."systemfd"."0.3.0"."failure"}" deps)
+ (features_.failure_derive."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
+ (features_.lazy_static."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
+ (features_.libc."${deps."systemfd"."0.3.0"."libc"}" deps)
+ (features_.regex."${deps."systemfd"."0.3.0"."regex"}" deps)
+ (features_.nix."${deps."systemfd"."0.3.0"."nix"}" deps)
+ (features_.socket2."${deps."systemfd"."0.3.0"."socket2"}" deps)
+ (features_.uuid."${deps."systemfd"."0.3.0"."uuid"}" deps)
+ (features_.winapi."${deps."systemfd"."0.3.0"."winapi"}" deps)
+ ];
+
+
+# end
+# termion-1.5.1
+
+ crates.termion."1.5.1" = deps: { features?(features_.termion."1.5.1" deps {}) }: buildRustCrate {
+ crateName = "termion";
+ version = "1.5.1";
+ description = "A bindless library for manipulating terminals.";
+ authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+ sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+ dependencies = (if !(kernel == "redox") then mapFeatures features ([
+ (crates."libc"."${deps."termion"."1.5.1"."libc"}" deps)
+ ]) else [])
+ ++ (if kernel == "redox" then mapFeatures features ([
+ (crates."redox_syscall"."${deps."termion"."1.5.1"."redox_syscall"}" deps)
+ (crates."redox_termios"."${deps."termion"."1.5.1"."redox_termios"}" deps)
+ ]) else []);
+ };
+ features_.termion."1.5.1" = deps: f: updateFeatures f (rec {
+ libc."${deps.termion."1.5.1".libc}".default = true;
+ redox_syscall."${deps.termion."1.5.1".redox_syscall}".default = true;
+ redox_termios."${deps.termion."1.5.1".redox_termios}".default = true;
+ termion."1.5.1".default = (f.termion."1.5.1".default or true);
+ }) [
+ (features_.libc."${deps."termion"."1.5.1"."libc"}" deps)
+ (features_.redox_syscall."${deps."termion"."1.5.1"."redox_syscall"}" deps)
+ (features_.redox_termios."${deps."termion"."1.5.1"."redox_termios"}" deps)
+ ];
+
+
+# end
+# termios-0.2.2
+
+ crates.termios."0.2.2" = deps: { features?(features_.termios."0.2.2" deps {}) }: buildRustCrate {
+ crateName = "termios";
+ version = "0.2.2";
+ description = "Safe bindings for the termios library.";
+ authors = [ "David Cuddeback <david.cuddeback@gmail.com>" ];
+ sha256 = "0hjy4idvcapx9i6qbhf5536aqnf6rqk2aaj424sfwy7qhv6xmcx3";
+ dependencies = mapFeatures features ([
+ (crates."libc"."${deps."termios"."0.2.2"."libc"}" deps)
+ ]);
+ };
+ features_.termios."0.2.2" = deps: f: updateFeatures f (rec {
+ libc."${deps.termios."0.2.2".libc}".default = true;
+ termios."0.2.2".default = (f.termios."0.2.2".default or true);
+ }) [
+ (features_.libc."${deps."termios"."0.2.2"."libc"}" deps)
+ ];
+
+
+# end
+# textwrap-0.9.0
+
+ crates.textwrap."0.9.0" = deps: { features?(features_.textwrap."0.9.0" deps {}) }: buildRustCrate {
+ crateName = "textwrap";
+ version = "0.9.0";
+ description = "Textwrap is a small library for word wrapping, indenting, and\ndedenting strings.\n\nYou can use it to format strings (such as help and error messages) for\ndisplay in commandline applications. It is designed to be efficient\nand handle Unicode characters correctly.\n";
+ authors = [ "Martin Geisler <martin@geisler.net>" ];
+ sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb";
+ dependencies = mapFeatures features ([
+ (crates."unicode_width"."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
+ ]);
+ };
+ features_.textwrap."0.9.0" = deps: f: updateFeatures f (rec {
+ textwrap."0.9.0".default = (f.textwrap."0.9.0".default or true);
+ unicode_width."${deps.textwrap."0.9.0".unicode_width}".default = true;
+ }) [
+ (features_.unicode_width."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
+ ];
+
+
+# end
+# thread_local-0.3.5
+
+ crates.thread_local."0.3.5" = deps: { features?(features_.thread_local."0.3.5" deps {}) }: buildRustCrate {
+ crateName = "thread_local";
+ version = "0.3.5";
+ description = "Per-object thread-local storage";
+ authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+ sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
+ dependencies = mapFeatures features ([
+ (crates."lazy_static"."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
+ (crates."unreachable"."${deps."thread_local"."0.3.5"."unreachable"}" deps)
+ ]);
+ };
+ features_.thread_local."0.3.5" = deps: f: updateFeatures f (rec {
+ lazy_static."${deps.thread_local."0.3.5".lazy_static}".default = true;
+ thread_local."0.3.5".default = (f.thread_local."0.3.5".default or true);
+ unreachable."${deps.thread_local."0.3.5".unreachable}".default = true;
+ }) [
+ (features_.lazy_static."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
+ (features_.unreachable."${deps."thread_local"."0.3.5"."unreachable"}" deps)
+ ];
+
+
+# end
+# ucd-util-0.1.1
+
+ crates.ucd_util."0.1.1" = deps: { features?(features_.ucd_util."0.1.1" deps {}) }: buildRustCrate {
+ crateName = "ucd-util";
+ version = "0.1.1";
+ description = "A small utility library for working with the Unicode character database.\n";
+ authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+ sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
+ };
+ features_.ucd_util."0.1.1" = deps: f: updateFeatures f (rec {
+ ucd_util."0.1.1".default = (f.ucd_util."0.1.1".default or true);
+ }) [];
+
+
+# end
+# unicode-width-0.1.4
+
+ crates.unicode_width."0.1.4" = deps: { features?(features_.unicode_width."0.1.4" deps {}) }: buildRustCrate {
+ crateName = "unicode-width";
+ version = "0.1.4";
+ description = "Determine displayed width of `char` and `str` types\naccording to Unicode Standard Annex #11 rules.\n";
+ authors = [ "kwantam <kwantam@gmail.com>" ];
+ sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+ features = mkFeatures (features."unicode_width"."0.1.4" or {});
+ };
+ features_.unicode_width."0.1.4" = deps: f: updateFeatures f (rec {
+ unicode_width."0.1.4".default = (f.unicode_width."0.1.4".default or true);
+ }) [];
+
+
+# end
+# unicode-xid-0.0.4
+
+ crates.unicode_xid."0.0.4" = deps: { features?(features_.unicode_xid."0.0.4" deps {}) }: buildRustCrate {
+ crateName = "unicode-xid";
+ version = "0.0.4";
+ description = "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n";
+ authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
+ sha256 = "1dc8wkkcd3s6534s5aw4lbjn8m67flkkbnajp5bl8408wdg8rh9v";
+ features = mkFeatures (features."unicode_xid"."0.0.4" or {});
+ };
+ features_.unicode_xid."0.0.4" = deps: f: updateFeatures f (rec {
+ unicode_xid."0.0.4".default = (f.unicode_xid."0.0.4".default or true);
+ }) [];
+
+
+# end
+# unreachable-1.0.0
+
+ crates.unreachable."1.0.0" = deps: { features?(features_.unreachable."1.0.0" deps {}) }: buildRustCrate {
+ crateName = "unreachable";
+ version = "1.0.0";
+ description = "An unreachable code optimization hint in stable rust.";
+ authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+ sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
+ dependencies = mapFeatures features ([
+ (crates."void"."${deps."unreachable"."1.0.0"."void"}" deps)
+ ]);
+ };
+ features_.unreachable."1.0.0" = deps: f: updateFeatures f (rec {
+ unreachable."1.0.0".default = (f.unreachable."1.0.0".default or true);
+ void."${deps.unreachable."1.0.0".void}".default = (f.void."${deps.unreachable."1.0.0".void}".default or false);
+ }) [
+ (features_.void."${deps."unreachable"."1.0.0"."void"}" deps)
+ ];
+
+
+# end
+# utf8-ranges-1.0.0
+
+ crates.utf8_ranges."1.0.0" = deps: { features?(features_.utf8_ranges."1.0.0" deps {}) }: buildRustCrate {
+ crateName = "utf8-ranges";
+ version = "1.0.0";
+ description = "Convert ranges of Unicode codepoints to UTF-8 byte ranges.";
+ authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+ sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0";
+ };
+ features_.utf8_ranges."1.0.0" = deps: f: updateFeatures f (rec {
+ utf8_ranges."1.0.0".default = (f.utf8_ranges."1.0.0".default or true);
+ }) [];
+
+
+# end
+# uuid-0.6.3
+
+ crates.uuid."0.6.3" = deps: { features?(features_.uuid."0.6.3" deps {}) }: buildRustCrate {
+ crateName = "uuid";
+ version = "0.6.3";
+ description = "A library to generate and parse UUIDs.\n";
+ authors = [ "Ashley Mannix<ashleymannix@live.com.au>" "Christopher Armstrong" "Dylan DPC<dylan.dpc@gmail.com>" "Hunar Roop Kahlon<hunar.roop@gmail.com>" ];
+ sha256 = "1kjp5xglhab4saaikn95zn3mr4zja7484pv307cb5bxm2sawb8p6";
+ dependencies = mapFeatures features ([
+ (crates."cfg_if"."${deps."uuid"."0.6.3"."cfg_if"}" deps)
+ ]
+ ++ (if features.uuid."0.6.3".rand or false then [ (crates.rand."${deps."uuid"."0.6.3".rand}" deps) ] else []));
+ features = mkFeatures (features."uuid"."0.6.3" or {});
+ };
+ features_.uuid."0.6.3" = deps: f: updateFeatures f (rec {
+ cfg_if."${deps.uuid."0.6.3".cfg_if}".default = true;
+ rand."${deps.uuid."0.6.3".rand}".default = true;
+ uuid = fold recursiveUpdate {} [
+ { "0.6.3"."md5" =
+ (f.uuid."0.6.3"."md5" or false) ||
+ (f.uuid."0.6.3".v3 or false) ||
+ (uuid."0.6.3"."v3" or false); }
+ { "0.6.3"."rand" =
+ (f.uuid."0.6.3"."rand" or false) ||
+ (f.uuid."0.6.3".v3 or false) ||
+ (uuid."0.6.3"."v3" or false) ||
+ (f.uuid."0.6.3".v4 or false) ||
+ (uuid."0.6.3"."v4" or false) ||
+ (f.uuid."0.6.3".v5 or false) ||
+ (uuid."0.6.3"."v5" or false); }
+ { "0.6.3"."serde" =
+ (f.uuid."0.6.3"."serde" or false) ||
+ (f.uuid."0.6.3".playground or false) ||
+ (uuid."0.6.3"."playground" or false); }
+ { "0.6.3"."sha1" =
+ (f.uuid."0.6.3"."sha1" or false) ||
+ (f.uuid."0.6.3".v5 or false) ||
+ (uuid."0.6.3"."v5" or false); }
+ { "0.6.3"."std" =
+ (f.uuid."0.6.3"."std" or false) ||
+ (f.uuid."0.6.3".default or false) ||
+ (uuid."0.6.3"."default" or false) ||
+ (f.uuid."0.6.3".use_std or false) ||
+ (uuid."0.6.3"."use_std" or false); }
+ { "0.6.3"."v1" =
+ (f.uuid."0.6.3"."v1" or false) ||
+ (f.uuid."0.6.3".playground or false) ||
+ (uuid."0.6.3"."playground" or false); }
+ { "0.6.3"."v3" =
+ (f.uuid."0.6.3"."v3" or false) ||
+ (f.uuid."0.6.3".playground or false) ||
+ (uuid."0.6.3"."playground" or false); }
+ { "0.6.3"."v4" =
+ (f.uuid."0.6.3"."v4" or false) ||
+ (f.uuid."0.6.3".playground or false) ||
+ (uuid."0.6.3"."playground" or false); }
+ { "0.6.3"."v5" =
+ (f.uuid."0.6.3"."v5" or false) ||
+ (f.uuid."0.6.3".playground or false) ||
+ (uuid."0.6.3"."playground" or false); }
+ { "0.6.3".default = (f.uuid."0.6.3".default or true); }
+ ];
+ }) [
+ (features_.cfg_if."${deps."uuid"."0.6.3"."cfg_if"}" deps)
+ (features_.rand."${deps."uuid"."0.6.3"."rand"}" deps)
+ ];
+
+
+# end
+# vec_map-0.8.1
+
+ crates.vec_map."0.8.1" = deps: { features?(features_.vec_map."0.8.1" deps {}) }: buildRustCrate {
+ crateName = "vec_map";
+ version = "0.8.1";
+ description = "A simple map based on a vector for small integer keys";
+ authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+ sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
+ dependencies = mapFeatures features ([
+]);
+ features = mkFeatures (features."vec_map"."0.8.1" or {});
+ };
+ features_.vec_map."0.8.1" = deps: f: updateFeatures f (rec {
+ vec_map = fold recursiveUpdate {} [
+ { "0.8.1"."serde" =
+ (f.vec_map."0.8.1"."serde" or false) ||
+ (f.vec_map."0.8.1".eders or false) ||
+ (vec_map."0.8.1"."eders" or false); }
+ { "0.8.1".default = (f.vec_map."0.8.1".default or true); }
+ ];
+ }) [];
+
+
+# end
+# void-1.0.2
+
+ crates.void."1.0.2" = deps: { features?(features_.void."1.0.2" deps {}) }: buildRustCrate {
+ crateName = "void";
+ version = "1.0.2";
+ description = "The uninhabited void type for use in statically impossible cases.";
+ authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+ sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
+ features = mkFeatures (features."void"."1.0.2" or {});
+ };
+ features_.void."1.0.2" = deps: f: updateFeatures f (rec {
+ void = fold recursiveUpdate {} [
+ { "1.0.2"."std" =
+ (f.void."1.0.2"."std" or false) ||
+ (f.void."1.0.2".default or false) ||
+ (void."1.0.2"."default" or false); }
+ { "1.0.2".default = (f.void."1.0.2".default or true); }
+ ];
+ }) [];
+
+
+# end
+# winapi-0.2.8
+
+ crates.winapi."0.2.8" = deps: { features?(features_.winapi."0.2.8" deps {}) }: buildRustCrate {
+ crateName = "winapi";
+ version = "0.2.8";
+ description = "Types and constants for WinAPI bindings. See README for list of crates providing function bindings.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+ };
+ features_.winapi."0.2.8" = deps: f: updateFeatures f (rec {
+ winapi."0.2.8".default = (f.winapi."0.2.8".default or true);
+ }) [];
+
+
+# end
+# winapi-0.3.4
+
+ crates.winapi."0.3.4" = deps: { features?(features_.winapi."0.3.4" deps {}) }: buildRustCrate {
+ crateName = "winapi";
+ version = "0.3.4";
+ description = "Raw FFI bindings for all of Windows API.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "1qbrf5dcnd8j36cawby5d9r5vx07r0l4ryf672pfncnp8895k9lx";
+ build = "build.rs";
+ dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([
+ (crates."winapi_i686_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
+ ]) else [])
+ ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([
+ (crates."winapi_x86_64_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
+ ]) else []);
+ features = mkFeatures (features."winapi"."0.3.4" or {});
+ };
+ features_.winapi."0.3.4" = deps: f: updateFeatures f (rec {
+ winapi."0.3.4".default = (f.winapi."0.3.4".default or true);
+ winapi_i686_pc_windows_gnu."${deps.winapi."0.3.4".winapi_i686_pc_windows_gnu}".default = true;
+ winapi_x86_64_pc_windows_gnu."${deps.winapi."0.3.4".winapi_x86_64_pc_windows_gnu}".default = true;
+ }) [
+ (features_.winapi_i686_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
+ (features_.winapi_x86_64_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
+ ];
+
+
+# end
+# winapi-build-0.1.1
+
+ crates.winapi_build."0.1.1" = deps: { features?(features_.winapi_build."0.1.1" deps {}) }: buildRustCrate {
+ crateName = "winapi-build";
+ version = "0.1.1";
+ description = "Common code for build.rs in WinAPI -sys crates.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+ libName = "build";
+ };
+ features_.winapi_build."0.1.1" = deps: f: updateFeatures f (rec {
+ winapi_build."0.1.1".default = (f.winapi_build."0.1.1".default or true);
+ }) [];
+
+
+# end
+# winapi-i686-pc-windows-gnu-0.4.0
+
+ crates.winapi_i686_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_i686_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
+ crateName = "winapi-i686-pc-windows-gnu";
+ version = "0.4.0";
+ description = "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
+ build = "build.rs";
+ };
+ features_.winapi_i686_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
+ winapi_i686_pc_windows_gnu."0.4.0".default = (f.winapi_i686_pc_windows_gnu."0.4.0".default or true);
+ }) [];
+
+
+# end
+# winapi-x86_64-pc-windows-gnu-0.4.0
+
+ crates.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_x86_64_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
+ crateName = "winapi-x86_64-pc-windows-gnu";
+ version = "0.4.0";
+ description = "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
+ authors = [ "Peter Atashian <retep998@gmail.com>" ];
+ sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
+ build = "build.rs";
+ };
+ features_.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
+ winapi_x86_64_pc_windows_gnu."0.4.0".default = (f.winapi_x86_64_pc_windows_gnu."0.4.0".default or true);
+ }) [];
+
+
+# end
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/default.nix
new file mode 100644
index 000000000000..c25f0491c672
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/systemfd/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, lib, fetchgit, darwin, buildPlatform
+, buildRustCrate, buildRustCrateHelpers, defaultCrateOverrides }:
+
+((import ./Cargo.nix {
+ inherit lib buildPlatform buildRustCrate buildRustCrateHelpers fetchgit;
+ cratesIO = import ./crates-io.nix { inherit lib buildRustCrate buildRustCrateHelpers; };
+}).systemfd {}).override {
+ crateOverrides = defaultCrateOverrides // {
+ systemfd = attrs: {
+ meta = {
+ description = "A convenient helper for passing sockets into another process";
+ homepage = "https://github.com/mitsuhiko/systemfd";
+ license = lib.licenses.asl20;
+ maintainers = [ lib.maintainers.adisbladis ];
+ };
+ };
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tabnine/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tabnine/default.nix
new file mode 100644
index 000000000000..6e49bd2aafc5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tabnine/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchurl }:
+
+let
+ version = "3.1.1";
+ src =
+ if stdenv.hostPlatform.system == "x86_64-darwin" then
+ fetchurl {
+ url = "https://update.tabnine.com/${version}/x86_64-apple-darwin/TabNine";
+ sha256 = "w+Ufy4pICfQmseKCeohEQIP0VD6YrkYTEn41HX40Zlw=";
+ }
+ else if stdenv.hostPlatform.system == "x86_64-linux" then
+ fetchurl {
+ url = "https://update.tabnine.com/${version}/x86_64-unknown-linux-musl/TabNine";
+ sha256 = "hSltZWQz2BRFut0NDI4fS/N8XxFJaYGHRtV3llBVOY4=";
+ }
+ else throw "Not supported on ${stdenv.hostPlatform.system}";
+in stdenv.mkDerivation rec {
+ pname = "tabnine";
+
+ inherit version src;
+
+ dontBuild = true;
+ dontUnpack = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ ln -s $src $out/bin/TabNine
+ '';
+
+ meta = with lib; {
+ homepage = "https://tabnine.com";
+ description = "Smart Compose for code that uses deep learning to help you write code faster";
+ license = licenses.unfree;
+ platforms = [ "x86_64-darwin" "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/textql/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/textql/default.nix
new file mode 100644
index 000000000000..4cdb5b8dd163
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/textql/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, sqlite }:
+
+buildGoPackage rec {
+ pname = "textql";
+ version = "2.0.3";
+
+ goPackagePath = "github.com/dinedal/textql";
+
+ src = fetchFromGitHub {
+ owner = "dinedal";
+ repo = "textql";
+ rev = version;
+ sha256 = "1b61w4pc5gl7m12mphricihzq7ifnzwn0yyw3ypv0d0fj26h5hc3";
+ };
+
+ postInstall = ''
+ install -Dm644 -t $out/share/man/man1 ${src}/man/textql.1
+ '';
+
+ # needed for tests
+ nativeBuildInputs = [ sqlite ];
+
+ goDeps = ./deps.nix;
+
+ doCheck = true;
+
+ meta = with stdenv.lib; {
+ description = "Execute SQL against structured text like CSV or TSV";
+ homepage = "https://github.com/dinedal/textql";
+ license = licenses.mit;
+ maintainers = with maintainers; [ vrthra ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/textql/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/textql/deps.nix
new file mode 100644
index 000000000000..e166e73a61fc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/textql/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "github.com/mattn/go-sqlite3";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-sqlite3";
+ rev = "b4142c444a8941d0d92b0b7103a24df9cd815e42";
+ sha256 = "0xq2y4am8dz9w9aaq24s1npg1sn8pf2gn4nki73ylz2fpjwq9vla";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/the-way/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/the-way/default.nix
new file mode 100644
index 000000000000..6042f5f891a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/the-way/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, AppKit, Security }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "the-way";
+ version = "0.7.0";
+
+ src = fetchFromGitHub {
+ owner = "out-of-cheese-error";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "1whmvzpqm8x1q45mzrp4p40nj251drcryj9z4qjxgjlfsd5d1fxq";
+ };
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isDarwin [ AppKit Security ];
+
+ cargoSha256 = "0adhgp6blwx7s1hlwqzzsgkzc43q9avxx8a9ykvvv2s1w7m9ql78";
+ checkFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--skip=copy" ];
+ cargoParallelTestThreads = false;
+
+ postInstall = ''
+ $out/bin/the-way config default tmp.toml
+ for shell in bash fish zsh; do
+ THE_WAY_CONFIG=tmp.toml $out/bin/the-way complete $shell > the-way.$shell
+ installShellCompletion the-way.$shell
+ done
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Terminal code snippets manager";
+ homepage = "https://github.com/out-of-cheese-error/the-way";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ numkem ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/thrust/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/thrust/default.nix
new file mode 100644
index 000000000000..a0bc39f2816d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/thrust/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, buildEnv, makeWrapper, glib, alsaLib , dbus, gtk2, atk
+, pango, freetype, fontconfig, gdk-pixbuf , cairo, cups, expat, nspr, gconf, nss
+, xorg, libcap, unzip
+}:
+
+let
+ thrustEnv = buildEnv {
+ name = "env-thrust";
+ paths = [
+ stdenv.cc.cc glib dbus gtk2 atk pango freetype fontconfig gdk-pixbuf
+ cairo cups expat alsaLib nspr gconf nss xorg.libXrender xorg.libX11
+ xorg.libXext xorg.libXdamage xorg.libXtst xorg.libXcomposite
+ xorg.libXi xorg.libXfixes xorg.libXrandr xorg.libXcursor libcap
+ ];
+ };
+in stdenv.mkDerivation rec {
+ pname = "thrust";
+ version = "0.7.6";
+
+ src = fetchurl {
+ url = "https://github.com/breach/thrust/releases/download/v${version}/thrust-v${version}-linux-x64.zip";
+ sha256 = "07rrnlj0gk500pvar4b1wdqm05p4n9yjwn911x93bd2qwc8r5ymc";
+ };
+
+ buildInputs = [ thrustEnv makeWrapper unzip ];
+
+ phases = [ "installPhase" "fixupPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mkdir -p $out/libexec/thrust
+ unzip -d $out/libexec/thrust/ $src
+ patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+ $out/libexec/thrust/thrust_shell
+ wrapProgram $out/libexec/thrust/thrust_shell \
+ --prefix "LD_LIBRARY_PATH" : "${thrustEnv}/lib:${thrustEnv}/lib64"
+ ln -s $out/libexec/thrust/thrust_shell $out/bin
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Chromium-based cross-platform / cross-language application framework";
+ homepage = "https://github.com/breach/thrust";
+ license = licenses.mit;
+ maintainers = [ maintainers.osener ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/default.nix
new file mode 100644
index 000000000000..8f4e66703478
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, sconsPackages, lua }:
+
+stdenv.mkDerivation rec {
+ version = "1.0.93";
+ pname = "toluapp";
+
+ src = fetchFromGitHub {
+ owner = "LuaDist";
+ repo = "toluapp";
+ rev = version;
+ sha256 = "0zd55bc8smmgk9j4cf0jpibb03lgsvl0knpwhplxbv93mcdnw7s0";
+ };
+
+ nativeBuildInputs = [ sconsPackages.scons_3_0_1 ];
+ buildInputs = [ lua ];
+
+ patches = [ ./environ-and-linux-is-kinda-posix.patch ./headers.patch ];
+
+ preConfigure = ''
+ substituteInPlace config_posix.py \
+ --replace /usr/local $out
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A tool to integrate C/Cpp code with Lua";
+ homepage = "http://www.codenix.com/~tolua/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ vrthra ];
+ platforms = with platforms; unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/environ-and-linux-is-kinda-posix.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/environ-and-linux-is-kinda-posix.patch
new file mode 100644
index 000000000000..6743b25cb8ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/environ-and-linux-is-kinda-posix.patch
@@ -0,0 +1,36 @@
+As it turns out, scons doesn't inherit environment variables by
+default. Debugging this was very pleasant. -- oxij
+
+diff --git a/SConstruct b/SConstruct
+index 5c1e774..66aa4c8 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -5,13 +5,11 @@ tools = ['default']
+ if os.name == 'nt':
+ tools = ['mingw']
+
+-env = Environment(tools = tools)
++env = Environment(tools = tools, ENV = os.environ)
+
+ options_file = None
+-if sys.platform == 'linux2':
+- options_file = "linux"
+
+-elif 'msvc' in env['TOOLS']:
++if 'msvc' in env['TOOLS']:
+ options_file = "msvc"
+ else:
+ options_file = "posix"
+diff --git a/config_posix.py b/config_posix.py
+index 2bb696c..eb4eb9b 100644
+--- a/config_posix.py
++++ b/config_posix.py
+@@ -16,7 +16,7 @@ CCFLAGS = ['-O2', '-ansi', '-Wall']
+ prefix = '/usr/local'
+
+ # libraries
+-LIBS = ['lua', 'lualib', 'm']
++LIBS = ['lua', 'liblua', 'm']
+
+
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/headers.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/headers.patch
new file mode 100644
index 000000000000..59a47bb989a9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/toluapp/headers.patch
@@ -0,0 +1,15 @@
+diff --git a/include/tolua++.h b/include/tolua++.h
+index ed53449..f57d56d 100644
+--- a/include/tolua++.h
++++ b/include/tolua++.h
+@@ -43,8 +43,8 @@ extern "C" {
+
+ typedef int lua_Object;
+
+-#include "lua.h"
+-#include "lauxlib.h"
++#include <lua.h>
++#include <lauxlib.h>
+
+ struct tolua_Error
+ {
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tora/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tora/default.nix
new file mode 100644
index 000000000000..213c926521fe
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tora/default.nix
@@ -0,0 +1,57 @@
+{ mkDerivation, lib, fetchFromGitHub, cmake, extra-cmake-modules, makeWrapper
+, boost, doxygen, openssl, libmysqlclient, postgresql, graphviz, loki
+, qscintilla, qtbase, qttools }:
+
+mkDerivation {
+ pname = "tora";
+ version = "3.2.176";
+
+ src = fetchFromGitHub {
+ owner = "tora-tool";
+ repo = "tora";
+ rev = "39bf2837779bf458fc72a9f0e49271152e57829f";
+ sha256 = "0fr9b542i8r6shgnz33lc3cz333fnxgmac033yxfrdjfglzk0j2k";
+ };
+
+ nativeBuildInputs = [ cmake extra-cmake-modules makeWrapper qttools ];
+
+ buildInputs = [
+ boost doxygen graphviz loki libmysqlclient openssl postgresql qscintilla qtbase
+ ];
+
+ preConfigure = ''
+ substituteInPlace src/widgets/toglobalsetting.cpp \
+ --replace 'defaultGvHome = "/usr/bin"' 'defaultGvHome = "${lib.getBin graphviz}/bin"'
+ substituteInPlace extlibs/libermodel/dotgraph.cpp \
+ --replace /usr/bin/dot ${lib.getBin graphviz}/bin/dot
+ '';
+
+ cmakeFlags = [
+ "-DWANT_INTERNAL_LOKI=0"
+ "-DWANT_INTERNAL_QSCINTILLA=0"
+ # cmake/modules/FindQScintilla.cmake looks in qtbase and for the wrong library name
+ "-DQSCINTILLA_INCLUDE_DIR=${qscintilla}/include"
+ "-DQSCINTILLA_LIBRARY=${qscintilla}/lib/libqscintilla2.so"
+ "-DENABLE_DB2=0"
+ "-DENABLE_ORACLE=0"
+ "-DENABLE_TERADATA=0"
+ "-DQT5_BUILD=1"
+ "-Wno-dev"
+ ];
+
+ # these libraries are only searched for at runtime so we need to force-link them
+ NIX_LDFLAGS = "-lgvc -lmysqlclient -lecpg -lssl";
+
+ NIX_CFLAGS_COMPILE = "-L${libmysqlclient}/lib/mysql -I${libmysqlclient}/include/mysql";
+
+ qtWrapperArgs = [
+ ''--prefix PATH : ${lib.getBin graphviz}/bin''
+ ];
+
+ meta = with lib; {
+ description = "Tora SQL tool";
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.linux;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/toxiproxy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/toxiproxy/default.nix
new file mode 100644
index 000000000000..448c14ffaf1a
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/toxiproxy/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "toxiproxy";
+ version = "2.1.4";
+ src = fetchFromGitHub {
+ owner = "Shopify";
+ repo = "toxiproxy";
+ rev = "v${version}";
+ sha256 = "07yhsvscdv1qjfc2fyyh9qsrrdwrrw04wadk5gaq4qddcway7vig";
+ };
+
+ goPackagePath = "github.com/Shopify/toxiproxy";
+ subPackages = ["cmd" "cli"];
+ buildFlagsArray = "-ldflags=-X github.com/Shopify/toxiproxy.Version=v${version}";
+
+ postInstall = ''
+ mv $out/bin/cli $out/bin/toxiproxy-cli
+ mv $out/bin/cmd $out/bin/toxiproxy-cmd
+ '';
+
+ meta = {
+ description = "Proxy for for simulating network conditions";
+ maintainers = with lib.maintainers; [ avnik ];
+ license = lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tracy/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tracy/default.nix
new file mode 100644
index 000000000000..5839a7771d0f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tracy/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
+
+stdenv.mkDerivation rec {
+ pname = "tracy";
+ version = "0.7.3";
+
+ src = fetchFromGitHub {
+ owner = "wolfpld";
+ repo = "tracy";
+ rev = "v${version}";
+ sha256 = "06xznk7nslw9km7hia2pfb5filjqalgx6cah48skxnah148svq2y";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [ glfw capstone ]
+ ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ]
+ ++ lib.optionals stdenv.isLinux [ gtk3 tbb ];
+
+ NIX_CFLAGS_COMPILE = [ ]
+ ++ lib.optional stdenv.isLinux "-ltbb"
+ ++ lib.optional stdenv.cc.isClang "-faligned-allocation";
+
+ buildPhase = ''
+ make -j $NIX_BUILD_CORES -C profiler/build/unix release
+ make -j $NIX_BUILD_CORES -C import-chrome/build/unix/ release
+ make -j $NIX_BUILD_CORES -C capture/build/unix/ release
+ make -j $NIX_BUILD_CORES -C update/build/unix/ release
+ '';
+
+ installPhase = ''
+ install -D ./profiler/build/unix/Tracy-release $out/bin/Tracy
+ install -D ./import-chrome/build/unix/import-chrome-release $out/bin/import-chrome
+ install -D ./capture/build/unix/capture-release $out/bin/capture
+ install -D ./update/build/unix/update-release $out/bin/update
+ '';
+
+ fixupPhase = lib.optionalString stdenv.isDarwin ''
+ install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A real time, nanosecond resolution, remote telemetry frame profiler for games and other applications";
+ homepage = "https://github.com/wolfpld/tracy";
+ platforms = platforms.linux ++ platforms.darwin;
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ mpickering nagisa ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/aarch64.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/aarch64.patch
new file mode 100644
index 000000000000..ef7ad9828ace
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/aarch64.patch
@@ -0,0 +1,12 @@
+diff a/config.h b/config.h
+--- a/config.h
++++ b/config.h
+@@ -124,6 +124,8 @@
+ #define CONFIG_CPU "__ppc64__"
+ #elif defined(__ARM__)
+ #define CONFIG_CPU "__ARM__"
++#elif defined(__aarch64__)
++#define CONFIG_CPU "__aarch64__"
+ #else
+ /* let it go */
+ #endif
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/default.nix
new file mode 100644
index 000000000000..ddcdc38a4fb9
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, autoconf }:
+
+stdenv.mkDerivation {
+ name = "tradcpp-0.5.2";
+
+ src = fetchurl {
+ url = "https://ftp.netbsd.org/pub/NetBSD/misc/dholland/tradcpp-0.5.2.tar.gz";
+ sha256 = "1h2bwxwc13rz3g2236l89hm47f72hn3m4h7wjir3j532kq0m68bc";
+ };
+
+ # tradcpp only comes with BSD-make Makefile; the patch adds configure support
+ buildInputs = [ autoconf ];
+ preConfigure = "autoconf";
+ patches = [
+ ./tradcpp-configure.patch
+ ./aarch64.patch
+ ];
+
+ meta = with stdenv.lib; {
+ description = "A traditional (K&R-style) C macro preprocessor";
+ platforms = platforms.all;
+ license = licenses.bsd2;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/tradcpp-configure.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/tradcpp-configure.patch
new file mode 100644
index 000000000000..39cc499e2180
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tradcpp/tradcpp-configure.patch
@@ -0,0 +1,84 @@
+*** /dev/null Wed Jan 7 11:47:26 2015
+--- tradcpp-0.4/Makefile.in Wed Jan 7 11:43:15 2015
+***************
+*** 0 ****
+--- 1,64 ----
++ SHELL = /bin/sh
++
++ ### Filled in by `configure' ###
++ srcdir = @srcdir@
++ VPATH = @srcdir@
++ CC = @CC@
++ CFLAGS = @CFLAGS@
++ CPPFLAGS = @CPPFLAGS@
++
++ LDFLAGS = @LDFLAGS@
++
++ prefix = @prefix@
++ exec_prefix = @exec_prefix@
++
++ bindir = @bindir@
++ libdir = @libdir@
++ incdir = @includedir@
++ manext = 1
++ mandir = @mandir@/man$(manext)
++ docdir = @docdir@
++ datarootdir = @datarootdir@
++ datadir = @datadir@
++
++ OBJS= main.o \
++ files.o directive.o eval.o macro.o output.o \
++ place.o array.o utils.o
++
++ .PHONY: all clean install man doc dist
++
++ default: all
++
++ all: tradcpp
++
++ tradcpp: $(OBJS)
++ $(CC) $(LDFLAGS) $(CFLAGS) $(CPPFLAGS) -o $@ $(OBJS)
++
++ clean:
++ rm -f *.o
++
++ distclean: clean
++ rm -f Makefile config.log config.status config-cache
++
++ install: tradcpp
++ mkdir -p $(DESTDIR)$(mandir)
++ install tradcpp.1 $(DESTDIR)$(mandir)
++ mkdir -p $(DESTDIR)$(bindir)
++ install tradcpp $(DESTDIR)$(bindir)
++
++ .c.o:
++ $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $<
++
++ array.o: array.c array.h inlinedefs.h utils.h
++ directive.o: directive.c utils.h mode.h place.h files.h directive.h \
++ macro.h eval.h output.h
++ eval.o: eval.c utils.h array.h inlinedefs.h mode.h place.h eval.h
++ files.o: files.c array.h inlinedefs.h utils.h mode.h place.h files.h \
++ directive.h
++ macro.o: macro.c array.h inlinedefs.h utils.h mode.h place.h macro.h \
++ output.h
++ main.o: main.c version.h config.h utils.h array.h inlinedefs.h mode.h \
++ place.h files.h directive.h macro.h
++ output.o: output.c utils.h mode.h place.h output.h
++ place.o: place.c utils.h array.h inlinedefs.h place.h
++ utils.o: utils.c utils.h
+*** /dev/null Wed Jan 7 11:47:26 2015
+--- tradcpp-0.4/configure.ac Wed Jan 7 11:22:18 2015
+***************
+*** 0 ****
+--- 1,10 ----
++ AC_PREREQ([2.60])dnl
++ AC_INIT(main.c)
++ AC_PROG_CC
++ AC_LANG(C)
++ AC_SUBST(CC)
++ AC_SUBST(CFLAGS)
++ AC_SUBST(CPPFLAGS)
++ AC_SUBST(LDFLAGS)
++ AC_SUBST(LD)
++ AC_OUTPUT(Makefile)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/trellis/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/trellis/default.nix
new file mode 100644
index 000000000000..21f14adc2f71
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/trellis/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub
+, python3, boost
+, cmake
+}:
+
+let
+ boostWithPython3 = boost.override { python = python3; enablePython = true; };
+in
+stdenv.mkDerivation rec {
+ pname = "trellis";
+ version = "2020.07.27";
+
+ # git describe --tags
+ realVersion = with stdenv.lib; with builtins;
+ "1.0-182-g${substring 0 7 (elemAt srcs 0).rev}";
+
+ srcs = [
+ (fetchFromGitHub {
+ owner = "SymbiFlow";
+ repo = "prjtrellis";
+ rev = "8c0a6382e11b160ed88d17af8493c12a897617ed";
+ sha256 = "1g0ppjfw8dq5cg5kl2p1p87grb0i88apaim4f5b6wj4sfqz8iln8";
+ name = "trellis";
+ })
+
+ (fetchFromGitHub {
+ owner = "SymbiFlow";
+ repo = "prjtrellis-db";
+ rev = "c137076fdd8bfca3d2bf9cdacda9983dbbec599a";
+ sha256 = "1br0vw8wwcn2qhs8kxkis5xqlr2nw7r3mf1qwjp8xckd6fa1wlcw";
+ name = "trellis-database";
+ })
+ ];
+ sourceRoot = "trellis";
+
+ buildInputs = [ boostWithPython3 ];
+ nativeBuildInputs = [ cmake python3 ];
+ cmakeFlags = [
+ "-DCURRENT_GIT_VERSION=${realVersion}"
+ # TODO: should this be in stdenv instead?
+ "-DCMAKE_INSTALL_DATADIR=${placeholder "out"}/share"
+ ];
+ enableParallelBuilding = true;
+
+ preConfigure = with builtins; ''
+ rmdir database && ln -sfv ${elemAt srcs 1} ./database
+
+ source environment.sh
+ cd libtrellis
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Documentation and bitstream tools for Lattice ECP5 FPGAs";
+ longDescription = ''
+ Project Trellis documents the Lattice ECP5 architecture
+ to enable development of open-source tools. Its goal is
+ to provide sufficient information to develop a free and
+ open Verilog to bitstream toolchain for these devices.
+ '';
+ homepage = "https://github.com/SymbiFlow/prjtrellis";
+ license = stdenv.lib.licenses.isc;
+ maintainers = with maintainers; [ q3k thoughtpolice emily ];
+ platforms = stdenv.lib.platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/default.nix
new file mode 100644
index 000000000000..edd428480a00
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildGoPackage, CoreFoundation }:
+
+buildGoPackage rec {
+ pname = "tychus";
+ version = "0.6.3";
+
+ goPackagePath = "github.com/devlocker/tychus";
+ goDeps = ./deps.nix;
+ subPackages = [];
+
+ src = fetchFromGitHub {
+ owner = "devlocker";
+ repo = "tychus";
+ rev = "v${version}";
+ sha256 = "02ybxjsfga89gpg0k21zmykhhnpx1vy3ny8fcwj0qsg73i11alvw";
+ };
+
+ buildInputs = stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ CoreFoundation ];
+
+ buildFlags = [ "--tags" "release" ];
+
+ meta = {
+ description = "Command line utility to live-reload your application";
+ homepage = "https://github.com/devlocker/tychus";
+ license = stdenv.lib.licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/deps.nix
new file mode 100644
index 000000000000..194aa96ae3ce
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/tychus/deps.nix
@@ -0,0 +1,30 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+ {
+ goPackagePath = "github.com/inconshreveable/mousetrap";
+ fetch = {
+ type = "git";
+ url = "https://github.com/inconshreveable/mousetrap";
+ rev = "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
+ sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/cobra";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/cobra";
+ rev = "f91529fc609202eededff4de2dc0ba2f662240a3";
+ sha256 = "10c3d5dp98rys134dnsl19ldj8bca183z91lj8rkbsy78qzrr9af";
+ };
+ }
+ {
+ goPackagePath = "github.com/spf13/pflag";
+ fetch = {
+ type = "git";
+ url = "https://github.com/spf13/pflag";
+ rev = "e57e3eeb33f795204c1ca35f56c44f83227c6e66";
+ sha256 = "13mhx4i913jil32j295m3a36jzvq1y64xig0naadiz7q9ja011r2";
+ };
+ }
+] \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/udis86/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/udis86/default.nix
new file mode 100644
index 000000000000..6996d5bf13fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/udis86/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, python }:
+
+stdenv.mkDerivation rec {
+ pname = "udis86";
+ version = "1.7.2";
+
+ src = fetchFromGitHub {
+ owner = "vmt";
+ repo = "udis86";
+ rev = "v${version}";
+ url = "https://github.com/vmt/udis86/archive/v${version}.tar.gz";
+ sha256 = "0c60zwimim6jrm4saw36s38w5sg5v8n9mr58pkqmjrlf7q9g6am1";
+ };
+
+ nativeBuildInputs = [ autoreconfHook python ];
+
+ configureFlags = [
+ "--enable-shared"
+ ];
+
+ outputs = [ "bin" "out" "dev" "lib" ];
+
+ meta = with stdenv.lib; {
+ homepage = "http://udis86.sourceforge.net";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ timor ];
+ description = ''
+ Easy-to-use, minimalistic x86 disassembler library (libudis86)
+ '';
+ platforms = platforms.all ;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/uftrace/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/uftrace/default.nix
new file mode 100644
index 000000000000..2fbf73665382
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/uftrace/default.nix
@@ -0,0 +1,25 @@
+{stdenv, fetchFromGitHub}:
+
+stdenv.mkDerivation rec {
+ pname = "uftrace";
+ version = "0.9.4";
+
+ src = fetchFromGitHub {
+ owner = "namhyung";
+ repo = "uftrace";
+ rev = "v${version}";
+ sha256 = "09zj4lgsbx0yp4i8ij9nh7wzylfcj421jzf1kkc2zpnn5hgynsb5";
+ };
+
+ postUnpack = ''
+ patchShebangs .
+ '';
+
+ meta = {
+ description = "Function (graph) tracer for user-space";
+ homepage = "https://github.com/namhyung/uftrace";
+ license = stdenv.lib.licenses.gpl2;
+ platforms = stdenv.lib.platforms.linux;
+ maintainers = [stdenv.lib.maintainers.nthorne];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/default.nix
new file mode 100644
index 000000000000..d3372ec1b6e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/default.nix
@@ -0,0 +1,31 @@
+
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+ pname = "unconvert-unstable";
+ version = "2018-07-03";
+ rev = "1a9a0a0a3594e9363e49545fb6a4e24ac4c68b7b";
+
+ goPackagePath = "github.com/mdempsky/unconvert";
+
+ src = fetchFromGitHub {
+ inherit rev;
+
+ owner = "mdempsky";
+ repo = "unconvert";
+ sha256 = "1ww5qk1cmdis4ig5mb0b0w7nzrf3734s51plmgdxqsr35y88q4p9";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with lib; {
+ description = "Remove unnecessary type conversions from Go source";
+ homepage = "https://github.com/mdempsky/unconvert";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ kalbasit ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/deps.nix
new file mode 100644
index 000000000000..333ec7ca3b15
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/unconvert/deps.nix
@@ -0,0 +1,29 @@
+[
+ {
+ goPackagePath = "github.com/kisielk/gotool";
+ fetch = {
+ type = "git";
+ url = "https://github.com/kisielk/gotool";
+ rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+ sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "6f44c5a2ea40ee3593d98cdcc905cc1fdaa660e2";
+ sha256 = "00mwzxly5isgf0glz7k3k2dkyqkjfc4z55qxajx4lgcp3h8xn9xj";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "96e9e165b75e735822645eff82850b08c377be36";
+ sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/default.nix
new file mode 100644
index 000000000000..dfb5f6abf481
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/default.nix
@@ -0,0 +1,143 @@
+{ stdenv, lib, fetchurl, makeWrapper, file, getopt
+, gtk2, gtk3, gdk-pixbuf, glib, libGL, libGLU, nss, nspr, udev, tbb
+, alsaLib, GConf, cups, libcap, fontconfig, freetype, pango
+, cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
+, libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
+, libXcomposite, libXext, libXrandr, libXtst, libSM, libICE, libxcb, chromium
+, libpqxx, libselinux, pciutils, libpulseaudio
+}:
+
+let
+ libPath64 = lib.makeLibraryPath [
+ gcc.cc gtk2 gdk-pixbuf glib libGL libGLU nss nspr
+ alsaLib GConf cups libcap fontconfig freetype pango
+ cairo dbus expat zlib libpng12 udev tbb
+ libX11 libXcursor libXdamage libXfixes libXrender libXi
+ libXcomposite libXext libXrandr libXtst libSM libICE libxcb
+ libpqxx gtk3
+
+ libselinux pciutils libpulseaudio
+ ];
+ libPath32 = lib.makeLibraryPath [ gcc_32bit.cc ];
+ binPath = lib.makeBinPath [ nodejs gnutar ];
+
+ ver = "2018.3.0";
+ build = "f2";
+
+in stdenv.mkDerivation {
+ pname = "unity-editor";
+ version = "${ver}x${build}";
+
+ src = fetchurl {
+ url = "https://beta.unity3d.com/download/6e9a27477296/LinuxEditorInstaller/Unity.tar.xz";
+ sha1 = "083imikkrgha5w9sihjvv1m74naxm5yv";
+ };
+
+ nosuidLib = ./unity-nosuid.c;
+
+ nativeBuildInputs = [ makeWrapper file getopt ];
+
+ outputs = [ "out" ];
+
+ sourceRoot = ".";
+
+ buildPhase = ''
+ cd Editor
+
+ $CC -fPIC -shared -o libunity-nosuid.so $nosuidLib -ldl
+ strip libunity-nosuid.so
+
+ cd ..
+ '';
+
+ installPhase = ''
+ unitydir="$out/opt/Unity/Editor"
+ mkdir -p $unitydir
+ mv Editor/* $unitydir
+ ln -sf /run/wrappers/bin/${chromium.sandboxExecutableName} $unitydir/chrome-sandbox
+
+ mkdir -p $out/bin
+ makeWrapper $unitydir/Unity $out/bin/unity-editor \
+ --prefix LD_LIBRARY_PATH : "${libPath64}" \
+ --prefix LD_PRELOAD : "$unitydir/libunity-nosuid.so" \
+ --prefix PATH : "${binPath}"
+ '';
+
+ preFixup = ''
+ patchFile() {
+ ftype="$(file -b "$1")"
+ if [[ "$ftype" =~ LSB\ .*dynamically\ linked ]]; then
+ if [[ "$ftype" =~ 32-bit ]]; then
+ rpath="${libPath32}"
+ intp="$(cat $NIX_CC/nix-support/dynamic-linker-m32)"
+ else
+ rpath="${libPath64}"
+ intp="$(cat $NIX_CC/nix-support/dynamic-linker)"
+ fi
+
+ # Save origin-relative parts of rpath.
+ originRpath="$(patchelf --print-rpath "$1" | sed "s/:/\n/g" | grep "^\$ORIGIN" | paste -sd ":" - || echo "")"
+ rpath="$originRpath:$rpath"
+
+ patchelf --set-rpath "$rpath" "$1"
+ patchelf --set-interpreter "$intp" "$1" 2> /dev/null || true
+ fi
+ }
+
+ upm_linux=$unitydir/Data/Resources/PackageManager/Server/UnityPackageManager
+
+
+ orig_size=$(stat --printf=%s $upm_linux)
+
+ # Exclude PlaybackEngines to build something that can be run on FHS-compliant Linuxes
+ find $unitydir -name PlaybackEngines -prune -o -type f -print | while read path; do
+ patchFile "$path"
+ done
+
+ new_size=$(stat --printf=%s $upm_linux)
+
+ ###### 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" $upm_linux | cut -d: -f1)
+ location=$(expr $location + $var_skip)
+ value=$(dd if=$upm_linux iflag=count_bytes,skip_bytes skip=$location \
+ bs=1 count=$var_select status=none)
+ value=$(expr $shift_by + $value)
+ echo -n $value | dd of=$upm_linux bs=1 seek=$location conv=notrunc
+ }
+
+ fix_offset PAYLOAD_POSITION
+ fix_offset PRELUDE_POSITION
+ '';
+
+ dontStrip = true;
+ dontPatchELF = true;
+
+ meta = with stdenv.lib; {
+ homepage = "https://unity3d.com/";
+ description = "Game development tool";
+ longDescription = ''
+ Popular development platform for creating 2D and 3D multiplatform games
+ and interactive experiences.
+ '';
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ tesq0 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/unity-nosuid.c b/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/unity-nosuid.c
new file mode 100644
index 000000000000..26a923ab0394
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/unity3d/unity-nosuid.c
@@ -0,0 +1,32 @@
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <dlfcn.h>
+
+static const char sandbox_path[] = "/chrome-sandbox";
+
+int __xstat(int ver, const char* path, struct stat* stat_buf) {
+ static int (*original_xstat)(int, const char*, struct stat*) = NULL;
+ if (original_xstat == NULL) {
+ int (*fun)(int, const char*, struct stat*) = dlsym(RTLD_NEXT, "__xstat");
+ if (fun == NULL) {
+ return -1;
+ };
+ original_xstat = fun;
+ };
+
+ int res = (*original_xstat)(ver, path, stat_buf);
+ if (res == 0) {
+ char* pos = strstr(path, sandbox_path);
+ if (pos != NULL && *(pos + sizeof(sandbox_path) - 1) == '\0') {
+ printf("Lying about chrome-sandbox access rights...\n");
+ stat_buf->st_uid = 0;
+ stat_buf->st_gid = 0;
+ stat_buf->st_mode = 0104755;
+ };
+ }
+ return res;
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/unityhub/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/unityhub/default.nix
new file mode 100644
index 000000000000..85b7a704b9cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/unityhub/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
+
+let
+ version = "2.3.2";
+in appimageTools.wrapType2 rec {
+ name = "unityhub";
+
+ extraPkgs = (pkgs: with pkgs; with xorg; [ gtk2 gdk_pixbuf glib libGL libGLU nss nspr
+ alsaLib cups gnome2.GConf libcap fontconfig freetype pango
+ cairo dbus dbus-glib libdbusmenu libdbusmenu-gtk2 expat zlib libpng12 udev tbb
+ libpqxx gtk3 libsecret lsb-release openssl nodejs ncurses5
+
+ libX11 libXcursor libXdamage libXfixes libXrender libXi
+ libXcomposite libXext libXrandr libXtst libSM libICE libxcb
+
+ libselinux pciutils libpulseaudio libxml2
+ ]);
+
+ profile = ''
+ export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+ '';
+
+ src = fetchurl {
+ # mirror of https://public-cdn.cloud.unity3d.com/hub/prod/UnityHub.AppImage
+ url = "https://archive.org/download/unity-hub-${version}/UnityHub.AppImage";
+ sha256 = "07nfyfp9apshqarc6pgshsczila6x4943hiyyizc55kp85aw0imn";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://unity3d.com/";
+ description = "Game development tool";
+ longDescription = ''
+ Popular development platform for creating 2D and 3D multiplatform games
+ and interactive experiences.
+ '';
+ license = licenses.unfree;
+ platforms = [ "x86_64-linux" ];
+ maintainers = with maintainers; [ tesq0 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
new file mode 100644
index 000000000000..fa6555c594ef
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
@@ -0,0 +1,93 @@
+From: Antonio Terceiro <terceiro@debian.org>
+Date: Wed, 27 May 2015 09:36:17 -0300
+Subject: Support system-installed plugins
+Source: https://salsa.debian.org/ruby-team/vagrant/-/blob/9d86f222/debian/patches/0004-Support-system-installed-plugins.patch
+
+Plugins must be installed as regular Ruby libraries, and they must
+contain /usr/share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
+following content:
+
+{
+ "${PLUGINNAME}": {
+ "ruby_version":"$(ruby -e 'puts RUBY_VERSION')",
+ "vagrant_version":"$(cat /usr/share/vagrant/version.txt)",
+ "gem_version":"",
+ "require":"",
+ "sources":[]
+ }
+}
+---
+ lib/vagrant/plugin/manager.rb | 4 ++--
+ lib/vagrant/plugin/state_file.rb | 22 +++++++++++++++++++++-
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
+index 9058e68..2772131 100644
+--- a/lib/vagrant/plugin/manager.rb
++++ b/lib/vagrant/plugin/manager.rb
+@@ -18,7 +18,7 @@ module Vagrant
+
+ # Returns the path to the [StateFile] for system plugins.
+ def self.system_plugins_file
+- dir = Vagrant.installer_embedded_dir
++ dir = '@system_plugin_dir@'
+ return nil if !dir
+ Pathname.new(dir).join("plugins.json")
+ end
+@@ -38,7 +38,7 @@ module Vagrant
+
+ system_path = self.class.system_plugins_file
+ @system_file = nil
+- @system_file = StateFile.new(system_path) if system_path && system_path.file?
++ @system_file = StateFile.new(system_path, true) if system_path && system_path.file?
+
+ @local_file = nil
+ @globalized = @localized = false
+diff --git a/lib/vagrant/plugin/state_file.rb b/lib/vagrant/plugin/state_file.rb
+index c6872d4..935d431 100644
+--- a/lib/vagrant/plugin/state_file.rb
++++ b/lib/vagrant/plugin/state_file.rb
+@@ -11,8 +11,9 @@ module Vagrant
+ # @return [Pathname] path to file
+ attr_reader :path
+
+- def initialize(path)
++ def initialize(path, system = false)
+ @path = path
++ @system = system
+
+ @data = {}
+ if @path.exist?
+@@ -28,6 +29,21 @@ module Vagrant
+
+ @data["version"] ||= "1"
+ @data["installed"] ||= {}
++ load_extra_plugins
++ end
++
++ def load_extra_plugins
++ extra_plugins = Dir.glob(@path.dirname.join('plugins.d', '*.json'))
++ extra_plugins.each do |filename|
++ json = File.read(filename)
++ begin
++ plugin_data = JSON.parse(json)
++ @data["installed"].merge!(plugin_data)
++ rescue JSON::ParserError => e
++ raise Vagrant::Errors::PluginStateFileParseError,
++ path: filename, message: e.message
++ end
++ end
+ end
+
+ # Add a plugin that is installed to the state file.
+@@ -107,6 +123,10 @@ module Vagrant
+ f.close
+ FileUtils.mv(f.path, @path)
+ end
++ rescue Errno::EACCES
++ # Ignore permission denied against system-installed plugins; regular
++ # users are not supposed to write there.
++ raise unless @system
+ end
+
+ protected
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/default.nix
new file mode 100644
index 000000000000..4e2930f97a28
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -0,0 +1,117 @@
+{ stdenv, lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive
+, libguestfs, qemu, writeText, withLibvirt ? stdenv.isLinux, fetchpatch
+}:
+
+let
+ # NOTE: bumping the version and updating the hash is insufficient;
+ # you must use bundix to generate a new gemset.nix in the Vagrant source.
+ version = "2.2.10";
+ url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
+ sha256 = "07wlj4m79m9li3za1jkk4imdhqwpca86qz3c0h706s0w8cmv4bbj";
+
+ deps = bundlerEnv rec {
+ name = "${pname}-${version}";
+ pname = "vagrant";
+ inherit version;
+
+ inherit ruby;
+ gemfile = writeText "Gemfile" "";
+ lockfile = writeText "Gemfile.lock" "";
+ gemset = lib.recursiveUpdate (import ./gemset.nix) ({
+ vagrant = {
+ source = {
+ type = "url";
+ inherit url sha256;
+ };
+ inherit version;
+ };
+ } // lib.optionalAttrs withLibvirt (import ./gemset_libvirt.nix));
+
+ # This replaces the gem symlinks with directories, resolving this
+ # error when running vagrant (I have no idea why):
+ # /nix/store/p4hrycs0zaa9x0gsqylbk577ppnryixr-vagrant-2.2.6/lib/ruby/gems/2.6.0/gems/i18n-1.1.1/lib/i18n/config.rb:6:in `<module:I18n>': uninitialized constant I18n::Config (NameError)
+ postBuild = ''
+ for gem in "$out"/lib/ruby/gems/*/gems/*; do
+ cp -a "$gem/" "$gem.new"
+ rm "$gem"
+ # needed on macOS, otherwise the mv yields permission denied
+ chmod +w "$gem.new"
+ mv "$gem.new" "$gem"
+ done
+ '';
+ };
+
+in buildRubyGem rec {
+ name = "${gemName}-${version}";
+ gemName = "vagrant";
+ inherit version;
+
+ doInstallCheck = true;
+ dontBuild = false;
+ src = fetchurl { inherit url sha256; };
+
+ patches = [
+ ./unofficial-installation-nowarn.patch
+ ./use-system-bundler-version.patch
+ ./0004-Support-system-installed-plugins.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace lib/vagrant/plugin/manager.rb --subst-var-by \
+ system_plugin_dir "$out/vagrant-plugins"
+ '';
+
+ # PATH additions:
+ # - libarchive: Make `bsdtar` available for extracting downloaded boxes
+ # withLibvirt only:
+ # - libguestfs: Make 'virt-sysprep' available for 'vagrant package'
+ # - qemu: Make 'qemu-img' available for 'vagrant package'
+ postInstall =
+ let
+ pathAdditions = lib.makeSearchPath "bin"
+ (map (x: lib.getBin x) ([
+ libarchive
+ ] ++ lib.optionals withLibvirt [
+ libguestfs
+ qemu
+ ]));
+ in ''
+ wrapProgram "$out/bin/vagrant" \
+ --set GEM_PATH "${deps}/lib/ruby/gems/${ruby.version.libDir}" \
+ --prefix PATH ':' ${pathAdditions}
+
+ mkdir -p "$out/vagrant-plugins/plugins.d"
+ echo '{}' > "$out/vagrant-plugins/plugins.json"
+
+ mkdir -p $out/share/bash-completion/completions/
+ cp -av contrib/bash/completion.sh $out/share/bash-completion/completions/vagrant
+ '' +
+ lib.optionalString withLibvirt ''
+ substitute ${./vagrant-libvirt.json.in} $out/vagrant-plugins/plugins.d/vagrant-libvirt.json \
+ --subst-var-by ruby_version ${ruby.version} \
+ --subst-var-by vagrant_version ${version}
+ '';
+
+ installCheckPhase = ''
+ HOME="$(mktemp -d)" $out/bin/vagrant init --output - > /dev/null
+ '';
+
+ # `patchShebangsAuto` patches this one script which is intended to run
+ # on foreign systems.
+ postFixup = ''
+ sed -i -e '1c#!/bin/sh -' \
+ $out/lib/ruby/gems/*/gems/vagrant-*/plugins/provisioners/salt/bootstrap-salt.sh
+ '';
+
+ passthru = {
+ inherit ruby deps;
+ };
+
+ meta = with lib; {
+ description = "A tool for building complete development environments";
+ homepage = "https://www.vagrantup.com/";
+ license = licenses.mit;
+ maintainers = with maintainers; [ ma27 ];
+ platforms = with platforms; linux ++ darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
new file mode 100644
index 000000000000..3c22b74efed0
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
@@ -0,0 +1,440 @@
+{
+ bcrypt_pbkdf = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "02vssr285m7kpsr47jdmzbar1h1d0mnkmyrpr1zg828isfmwii35";
+ type = "gem";
+ };
+ version = "1.0.1";
+ };
+ builder = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+ type = "gem";
+ };
+ version = "3.2.4";
+ };
+ childprocess = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "08hd3d2lfi19cns4d6wkq51scasn17l83fgbzbjjk3dqccz4rg3j";
+ type = "gem";
+ };
+ version = "4.0.0";
+ };
+ concurrent-ruby = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+ type = "gem";
+ };
+ version = "1.1.7";
+ };
+ domain_name = {
+ dependencies = ["unf"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0lcqjsmixjp52bnlgzh4lg9ppsk52x9hpwdjd53k8jnbah2602h0";
+ type = "gem";
+ };
+ version = "0.5.20190701";
+ };
+ ed25519 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1f5kr8za7hvla38fc0n9jiv55iq62k5bzclsa5kdb14l3r4w6qnw";
+ type = "gem";
+ };
+ version = "1.2.4";
+ };
+ erubi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1nwzxnqhr31fn7nbqmffcysvxjdfl3bhxi0bld5qqhcnfc1xd13x";
+ type = "gem";
+ };
+ version = "1.9.0";
+ };
+ erubis = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
+ type = "gem";
+ };
+ version = "2.7.0";
+ };
+ ffi = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+ type = "gem";
+ };
+ version = "1.13.1";
+ };
+ gssapi = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh";
+ type = "gem";
+ };
+ version = "1.3.0";
+ };
+ gyoku = {
+ dependencies = ["builder"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ hashicorp-checkpoint = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z6mwzvd7p2wqhmk07dwrhvm0ncgqm7pxn0pr2k025rwsspp9bsd";
+ type = "gem";
+ };
+ version = "0.1.5";
+ };
+ http-cookie = {
+ dependencies = ["domain_name"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
+ type = "gem";
+ };
+ version = "1.0.3";
+ };
+ httpclient = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99";
+ type = "gem";
+ };
+ version = "2.8.3";
+ };
+ i18n = {
+ dependencies = ["concurrent-ruby"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ listen = {
+ dependencies = ["rb-fsevent" "rb-inotify"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
+ type = "gem";
+ };
+ version = "3.2.1";
+ };
+ little-plugger = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
+ type = "gem";
+ };
+ version = "1.1.4";
+ };
+ log4r = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ri90q0frfmigkirqv5ihyrj59xm8pq5zcmf156cbdv4r4l2jicv";
+ type = "gem";
+ };
+ version = "1.1.10";
+ };
+ logging = {
+ dependencies = ["little-plugger" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ mime = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0nskys7brz2bylhxiknl0z9i19w3wb1knf0h93in6mjq70jdw5cr";
+ type = "gem";
+ };
+ version = "0.4.4";
+ };
+ mime-types = {
+ dependencies = ["mime-types-data"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
+ type = "gem";
+ };
+ version = "3.3.1";
+ };
+ mime-types-data = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
+ type = "gem";
+ };
+ version = "3.2020.0512";
+ };
+ multi_json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+ type = "gem";
+ };
+ version = "1.15.0";
+ };
+ net-scp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ net-sftp = {
+ dependencies = ["net-ssh"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "185vsybznqgqbb4i2qnxvf1gam8lb634nqcrq7r3i2zy1g6xd8mi";
+ type = "gem";
+ };
+ version = "3.0.0";
+ };
+ net-ssh = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9";
+ type = "gem";
+ };
+ version = "6.1.0";
+ };
+ netrc = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
+ type = "gem";
+ };
+ version = "0.11.0";
+ };
+ nori = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn";
+ type = "gem";
+ };
+ version = "2.6.0";
+ };
+ rb-fsevent = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+ type = "gem";
+ };
+ version = "0.10.4";
+ };
+ rb-inotify = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+ type = "gem";
+ };
+ version = "0.10.1";
+ };
+ rb-kqueue = {
+ dependencies = ["ffi"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14mhzrhs2j43vj36i1qq4z29nd860shrslfik015f4kf1jiaqcrw";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ rest-client = {
+ dependencies = ["http-cookie" "mime-types" "netrc"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
+ type = "gem";
+ };
+ version = "2.0.2";
+ };
+ ruby_dep = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0v0qznxz999lx4vs76mr590r90i0cm5m76wwvgis7sq4y21l308l";
+ type = "gem";
+ };
+ version = "1.3.1";
+ };
+ rubyntlm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+ type = "gem";
+ };
+ version = "0.6.2";
+ };
+ rubyzip = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+ type = "gem";
+ };
+ version = "2.3.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 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+ type = "gem";
+ };
+ version = "0.0.7.7";
+ };
+ vagrant_cloud = {
+ dependencies = ["rest-client"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "16jpnq4xa7gavm024wk1rgmkfb850g89rv56f26dkh0rdhbqiqvs";
+ type = "gem";
+ };
+ version = "2.0.3";
+ };
+ wdm = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0x5l2pn4x92734k6i2wcjbn2klmwgkiqaajvxadh35k74dgnyh18";
+ type = "gem";
+ };
+ version = "0.1.1";
+ };
+ winrm = {
+ dependencies = ["builder" "erubi" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13c0vf32vinkp3ia86rvq779dacl37v4v2814v4g9qrk3liv0dym";
+ type = "gem";
+ };
+ version = "2.3.4";
+ };
+ winrm-elevated = {
+ dependencies = ["erubi" "winrm" "winrm-fs"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yawwrs3pnvbbm9xn0nbzvyl92kgf1jr439qfbqx0mb8zzkyi2dv";
+ type = "gem";
+ };
+ version = "1.2.1";
+ };
+ winrm-fs = {
+ dependencies = ["erubi" "logging" "rubyzip" "winrm"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "093f698l9b9cx6vcqwjc9hi5hbd86ynp1g5c7g9k18y6h7fxjk43";
+ type = "gem";
+ };
+ version = "1.3.4";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
new file mode 100644
index 000000000000..2631833dc009
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/gemset_libvirt.nix
@@ -0,0 +1,118 @@
+{
+ excon = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "15l9w0938c19nxmrp09n75qpmm64k12xj69h47yvxzcxcpbgnkb2";
+ type = "gem";
+ };
+ version = "0.62.0";
+ };
+ fog-core = {
+ dependencies = ["builder" "excon" "formatador"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0ac25s2wv7m6av7h7vjzd2bg3srhnn5yrz3lq1xpimhnfmp82sw6";
+ type = "gem";
+ };
+ version = "1.43.0";
+ };
+ fog-json = {
+ dependencies = ["fog-core" "multi_json"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1zj8llzc119zafbmfa4ai3z5s7c4vp9akfs0f9l2piyvcarmlkyx";
+ type = "gem";
+ };
+ version = "1.2.0";
+ };
+ fog-libvirt = {
+ dependencies = ["fog-core" "fog-json" "fog-xml" "json" "ruby-libvirt"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0gk16gsjd51x71wla7h5jqr6x5ywpwz5l8jdv76f9mr6fp1j2bkf";
+ type = "gem";
+ };
+ version = "0.5.0";
+ };
+ fog-xml = {
+ dependencies = ["fog-core" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "043lwdw2wsi6d55ifk0w3izi5l1d1h0alwyr3fixic7b94kc812n";
+ type = "gem";
+ };
+ version = "0.1.3";
+ };
+ formatador = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0";
+ type = "gem";
+ };
+ version = "0.2.5";
+ };
+ json = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+ type = "gem";
+ };
+ version = "2.1.0";
+ };
+ mini_portile2 = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+ type = "gem";
+ };
+ version = "2.3.0";
+ };
+ nokogiri = {
+ dependencies = ["mini_portile2"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+ type = "gem";
+ };
+ version = "1.8.5";
+ };
+ ruby-libvirt = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0d754d6pgdqyq52pl9hp0x38q1vn3vf9nz4nm5gqdj5i4fw7pba6";
+ type = "gem";
+ };
+ version = "0.7.1";
+ };
+ vagrant-libvirt = {
+ dependencies = ["fog-core" "fog-libvirt" "nokogiri"];
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1wm5yvml3sxdzpnlp4q6yhy695syy8byd1g7cxll4pmj1kwlknym";
+ type = "gem";
+ };
+ version = "0.0.45";
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/unofficial-installation-nowarn.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/unofficial-installation-nowarn.patch
new file mode 100644
index 000000000000..7b4ce471c94d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/unofficial-installation-nowarn.patch
@@ -0,0 +1,16 @@
+diff --git a/bin/vagrant b/bin/vagrant
+index 0e6abdc..cb36e9c 100755
+--- a/bin/vagrant
++++ b/bin/vagrant
+@@ -155,11 +155,6 @@ begin
+ end
+ end
+
+- if !Vagrant.in_installer? && !Vagrant.very_quiet?
+- # If we're not in the installer, warn.
+- env.ui.warn(I18n.t("vagrant.general.not_in_installer") + "\n", prefix: false)
+- end
+-
+ # Acceptable experimental flag values include:
+ #
+ # Unset - Disables experimental features
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch
new file mode 100644
index 000000000000..8262220140a6
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch
@@ -0,0 +1,13 @@
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index 336ac1e05..1bfd84c0d 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -470,7 +470,7 @@ module Vagrant
+ source_list = {}
+ system_plugins = plugins.map do |plugin_name, plugin_info|
+ plugin_name if plugin_info["system"]
+- end.compact
++ end.compact << "bundler"
+ installer_set = VagrantSet.new(:both)
+ installer_set.system_plugins = system_plugins
+
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/vagrant-libvirt.json.in b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/vagrant-libvirt.json.in
new file mode 100644
index 000000000000..22060e1c2db7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vagrant/vagrant-libvirt.json.in
@@ -0,0 +1,9 @@
+{
+ "vagrant-libvirt": {
+ "ruby_version":"@ruby_version@",
+ "vagrant_version":"@vagrant_version@",
+ "gem_version":"",
+ "require":"",
+ "sources":[]
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vala-lint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vala-lint/default.nix
new file mode 100644
index 000000000000..199f1626c891
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vala-lint/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, fetchFromGitHub
+, glib
+, meson
+, ninja
+, pantheon
+, pkgconfig
+, vala
+, gettext
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+ pname = "vala-lint-unstable";
+ version = "2019-10-11";
+
+ src = fetchFromGitHub {
+ owner = "vala-lang";
+ repo = "vala-lint";
+ rev = "a077bbec30dea128616a23583ce3f8364ff2ef11";
+ sha256 = "0w0rmaj4v42wc4vq2lfjnj6airag5ahv6522xkw3j1nmccxq3s72";
+ };
+
+ nativeBuildInputs = [
+ gettext
+ meson
+ ninja
+ pkgconfig
+ vala
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ glib
+ ];
+
+ # See https://github.com/vala-lang/vala-lint/issues/133
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/vala-lang/vala-lint";
+ description = "Check Vala code files for code-style errors";
+ longDescription = ''
+ Small command line tool and library for checking Vala code files for code-style errors.
+ Based on the elementary Code-Style guidelines.
+ '';
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux;
+ maintainers = pantheon.maintainers;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vcstool/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vcstool/default.nix
new file mode 100644
index 000000000000..9657543e0c70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vcstool/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, python3Packages
+, git, breezy, subversion }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "vcstool";
+ version = "0.2.9";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1lb0j120sj76swi702ah6ryn770m1y7gh69237zxpyh897pn5paa";
+ };
+
+ propagatedBuildInputs = [ pyyaml setuptools ];
+
+ makeWrapperArgs = ["--prefix" "PATH" ":" (stdenv.lib.makeBinPath [ git breezy subversion ])];
+
+ doCheck = false; # requires network
+
+ meta = with stdenv.lib; {
+ description = "Provides a command line tool to invoke vcs commands on multiple repositories";
+ homepage = "https://github.com/dirk-thomas/vcstool";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ sivteck ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vend/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vend/default.nix
new file mode 100644
index 000000000000..ef59ea8dd65c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vend/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "vend";
+
+ /*
+ This package is used to generate vendor folders for
+ packages that use the `runVend` option with `buildGoModule`.
+
+ Do not update this package without checking that the vendorSha256
+ hashes of packages using the `runVend` option are unchanged
+ or updating their vendorSha256 hashes if necessary.
+ */
+ version = "1.0.2";
+ # Disable the bot
+ # nixpkgs-update: no auto update
+
+ # Disable `mod tidy`, patch was refused upstream
+ # https://github.com/nomad-software/vend/pull/9
+ patches = [ ./remove_tidy.patch ];
+
+ src = fetchFromGitHub {
+ owner = "nomad-software";
+ repo = "vend";
+ rev = "v${version}";
+ sha256 = "0h9rwwb56nzs46xsvl92af71i8b3wz3pf9ngi8v0i2bpk7p3p89d";
+ };
+
+ vendorSha256 = null;
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/nomad-software/vend";
+ description = "A utility which vendors go code including c dependencies";
+ maintainers = with maintainers; [ c00w mic92 zowoq ];
+ license = licenses.mit;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch b/infra/libkookie/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch
new file mode 100644
index 000000000000..d5db74a1bd70
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch
@@ -0,0 +1,13 @@
+diff --git a/cli/cmd.go b/cli/cmd.go
+index c766559..3a133fd 100644
+--- a/cli/cmd.go
++++ b/cli/cmd.go
+@@ -12,7 +12,7 @@ import (
+ // UpdateModule makes sure the module is updated ready to vendor the
+ // dependencies.
+ func UpdateModule() {
+- var commands = []string{"tidy", "download", "vendor"}
++ var commands = []string{"download", "vendor"}
+
+ for _, command := range commands {
+ cmd := exec.Command("go", "mod", command)
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/default.nix
new file mode 100644
index 000000000000..880703383d11
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, buildGoPackage
+, go
+, makeWrapper
+, nix-prefetch-git
+, fetchFromGitHub
+}:
+
+buildGoPackage {
+ pname = "vgo2nix";
+ version = "unstable-2020-05-05";
+ goPackagePath = "github.com/adisbladis/vgo2nix";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ src = fetchFromGitHub {
+ owner = "nix-community";
+ repo = "vgo2nix";
+ rev = "71e59bf268d5257a0f89b2f59cd20fd468c8c6ac";
+ sha256 = "1pcdkknq2v7nrs0siqcvvq2x0qqz5snwdz2lpjnad8i33rwhmayh";
+ };
+
+ goDeps = ./deps.nix;
+
+ allowGoReference = true;
+
+ postInstall = with stdenv; let
+ binPath = lib.makeBinPath [ nix-prefetch-git go ];
+ in ''
+ wrapProgram $out/bin/vgo2nix --prefix PATH : ${binPath}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Convert go.mod files to nixpkgs buildGoPackage compatible deps.nix files";
+ homepage = "https://github.com/nix-community/vgo2nix";
+ license = licenses.mit;
+ maintainers = with maintainers; [ adisbladis ];
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/deps.nix
new file mode 100644
index 000000000000..2d9a130e43e3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vgo2nix/deps.nix
@@ -0,0 +1,210 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+ {
+ goPackagePath = "github.com/alecthomas/assert";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/assert";
+ rev = "405dbfeb8e38";
+ sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/colour";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/colour";
+ rev = "60882d9e2721";
+ sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/kingpin";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/kingpin";
+ rev = "v2.2.6";
+ sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/repr";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/repr";
+ rev = "117648cd9897";
+ sha256 = "05v1rgzdqc8razf702laagrvhvx68xd9yxxmzd3dyz0d6425pdrp";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/template";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/template";
+ rev = "a0175ee3bccc";
+ sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
+ };
+ }
+ {
+ goPackagePath = "github.com/alecthomas/units";
+ fetch = {
+ type = "git";
+ url = "https://github.com/alecthomas/units";
+ rev = "2efee857e7cf";
+ sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
+ };
+ }
+ {
+ goPackagePath = "github.com/davecgh/go-spew";
+ fetch = {
+ type = "git";
+ url = "https://github.com/davecgh/go-spew";
+ rev = "v1.1.1";
+ sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+ };
+ }
+ {
+ goPackagePath = "github.com/mattn/go-isatty";
+ fetch = {
+ type = "git";
+ url = "https://github.com/mattn/go-isatty";
+ rev = "v0.0.3";
+ sha256 = "06w45aqz2a6yrk25axbly2k5wmsccv8cspb94bfmz4izvw8h927n";
+ };
+ }
+ {
+ goPackagePath = "github.com/orivej/e";
+ fetch = {
+ type = "git";
+ url = "https://github.com/orivej/e";
+ rev = "ac3492690fda";
+ sha256 = "11jizr28kfkr6zscjxg95pqi6cjp08aqnhs41sdhc98nww78ilkr";
+ };
+ }
+ {
+ goPackagePath = "github.com/orivej/go-nix";
+ fetch = {
+ type = "git";
+ url = "https://github.com/orivej/go-nix";
+ rev = "dae45d921a44";
+ sha256 = "17hfmsz8hs3h2d5c06j1bvbw8ijrhzm3iz911z5zydsl4x7y0cgy";
+ };
+ }
+ {
+ goPackagePath = "github.com/pkg/profile";
+ fetch = {
+ type = "git";
+ url = "https://github.com/pkg/profile";
+ rev = "v1.2.1";
+ sha256 = "0blqmvgqvdbqmh3fp9pfdxc9w1qfshrr0zy9whj0sn372bw64qnr";
+ };
+ }
+ {
+ 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/sergi/go-diff";
+ fetch = {
+ type = "git";
+ url = "https://github.com/sergi/go-diff";
+ rev = "v1.0.0";
+ sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7";
+ };
+ }
+ {
+ goPackagePath = "github.com/stretchr/testify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/stretchr/testify";
+ rev = "v1.2.2";
+ sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+ };
+ }
+ {
+ goPackagePath = "github.com/yuin/goldmark";
+ fetch = {
+ type = "git";
+ url = "https://github.com/yuin/goldmark";
+ rev = "v1.1.27";
+ sha256 = "1872cqnii0kwiqcy81yin0idvjy5mdy4zlzz0csb319lcjs3b923";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/crypto";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/crypto";
+ rev = "87dc89f01550";
+ sha256 = "0z4i1m2yn3f31ci7wvcm2rxkx2yiv7a78mfzklncmsz2k97rlh2g";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/mod";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/mod";
+ rev = "v0.2.0";
+ sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/net";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/net";
+ rev = "0de0cce0169b";
+ sha256 = "1db7s5kbzyh2zd5lpv05n7hp8wbwdvgk0wpiwrlnig94mkr0y5aq";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sync";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sync";
+ rev = "cd5d95a43a6e";
+ sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/sys";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/sys";
+ rev = "97732733099d";
+ sha256 = "118hkp01i4z1f5h6hcjm0ff2ngqhrzj1f7731n0kw8dr6hvbx0sw";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/text";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/text";
+ rev = "v0.3.0";
+ sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/tools";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/tools";
+ rev = "0c9eba77bc32";
+ sha256 = "1xz0jyxdmibkams6vd61va5cw963l25jjf3i9r33m0i739qwg4lj";
+ };
+ }
+ {
+ goPackagePath = "golang.org/x/xerrors";
+ fetch = {
+ type = "git";
+ url = "https://go.googlesource.com/xerrors";
+ rev = "9bdfabe68543";
+ sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vim-vint/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vim-vint/default.nix
new file mode 100644
index 000000000000..fcab1f952f2b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vim-vint/default.nix
@@ -0,0 +1,33 @@
+{ lib, python3Packages }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+ pname = "vim-vint";
+ version = "0.3.21";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "15qdh8fby9xgfjxidcfv1xmrqqrxxapky7zmyn46qx1abhp9piax";
+ };
+
+ # For python 3.5 > version > 2.7 , a nested dependency (pythonPackages.hypothesis) fails.
+ disabled = ! pythonAtLeast "3.5";
+
+ checkInputs = [ pytest pytestcov ];
+ propagatedBuildInputs = [ ansicolor chardet pyyaml setuptools ];
+
+ # Unpin test dependency versions. This is fixed in master but not yet released.
+ preCheck = ''
+ sed -i 's/==.*//g' test-requirements.txt
+ sed -i 's/mock == 1.0.1/mock/g' setup.py
+ '';
+
+ meta = with lib; {
+ description = "Fast and Highly Extensible Vim script Language Lint implemented by Python";
+ homepage = "https://github.com/Kuniwak/vint";
+ license = licenses.mit;
+ maintainers = with maintainers; [ andsild ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vndr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vndr/default.nix
new file mode 100644
index 000000000000..82f0018ce699
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vndr/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "vndr-unstable";
+ version = "2018-06-23";
+ rev = "81cb8916aad3c8d06193f008dba3e16f82851f52";
+
+ goPackagePath = "github.com/LK4D4/vndr";
+ excludedPackages = "test";
+
+ src = fetchFromGitHub {
+ inherit rev;
+ owner = "LK4D4";
+ repo = "vndr";
+ sha256 = "0c0k0cic35d1141az72gbf8r0vm9zaq4xi8v1sqpxhlzf28m297l";
+ };
+
+ meta = {
+ description = "Stupid golang vendoring tool, inspired by docker vendor script";
+ homepage = "https://github.com/LK4D4/vndr";
+ maintainers = with lib.maintainers; [ vdemeester ];
+ license = lib.licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vogl/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vogl/default.nix
new file mode 100644
index 000000000000..5c3b2abe4a47
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vogl/default.nix
@@ -0,0 +1,57 @@
+{ mkDerivation, lib, fetchFromGitHub
+, cmake, git, pkgconfig, wget, zip
+, qtbase, qtx11extras
+, libdwarf, libjpeg_turbo, libunwind, lzma, tinyxml, libX11
+, SDL2, SDL2_gfx, SDL2_image, SDL2_ttf
+, freeglut, libGLU
+, fetchpatch
+}:
+
+mkDerivation {
+ pname = "vogl";
+ version = "2016-05-13";
+
+ src = fetchFromGitHub {
+ owner = "deepfire";
+ repo = "vogl";
+ rev = "cbc5f1853e294b363f16c4e00b3e0c49dbf74559";
+ sha256 = "17gwd73x3lnqv6ccqs48pzqwbzjhbn41c0x0l5zzirhiirb3yh0n";
+ };
+
+ patches = [
+ (fetchpatch {
+ name = "fix-qt59.patch";
+ url = "https://github.com/ValveSoftware/vogl/commit/be3d85f.patch";
+ sha256 = "1yh4jd35mds337waqxdw3w22w7ghn05b5jm7fb4iihl39mhq6qyv";
+ })
+ ];
+
+ nativeBuildInputs = [ cmake pkgconfig ];
+
+ buildInputs = [
+ git wget zip
+ qtbase qtx11extras
+ libdwarf libjpeg_turbo libunwind lzma tinyxml libX11
+ SDL2 SDL2_gfx SDL2_image SDL2_ttf
+ freeglut libGLU
+ ];
+
+ dontUseCmakeBuildDir = true;
+ preConfigure = ''
+ cmakeDir=$PWD
+ mkdir -p vogl/vogl_build/release64 && cd $_
+ '';
+ cmakeFlags = [
+ "-DCMAKE_VERBOSE=On"
+ "-DBUILD_X64=On"
+ ];
+
+ meta = with lib; {
+ description = "OpenGL capture / playback debugger";
+ homepage = "https://github.com/ValveSoftware/vogl";
+ license = licenses.mit;
+ maintainers = [ maintainers.deepfire ];
+ platforms = [ "x86_64-linux" "i686-linux" ];
+ broken = true;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix
new file mode 100644
index 000000000000..ec696339fdcb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -0,0 +1,101 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, writeText
+, python3
+, spirv-headers
+, spirv-tools
+, vulkan-headers
+, vulkan-loader
+, glslang
+, pkgconfig
+, xlibsWrapper
+, libxcb
+, libXrandr
+, wayland
+}:
+# vulkan-validation-layers requires a custom glslang version, while glslang requires
+# custom versions for spirv-tools and spirv-headers. The git hashes required for all
+# of these deps is documented upstream here:
+# https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json
+
+let
+ localGlslang = (glslang.override {
+ argSpirv-tools = spirv-tools.overrideAttrs (_: {
+ src = fetchFromGitHub {
+ owner = "KhronosGroup";
+ repo = "SPIRV-Tools";
+ rev = "e128ab0d624ce7beb08eb9656bb260c597a46d0a";
+ sha256 = "0jj8zrl3dh9fq71jc8msx3f3ifb2vjcb37nl0w4sa8sdhfff74pv";
+ };
+ });
+ argSpirv-headers = spirv-headers.overrideAttrs (_: {
+ src = fetchFromGitHub {
+ owner = "KhronosGroup";
+ repo = "SPIRV-Headers";
+ rev = "ac638f1815425403e946d0ab78bac71d2bdbf3be";
+ sha256 = "1lkhs7pxcrfkmiizcxl0w5ajx6swwjv7w3iq586ipgh571fc75gx";
+ };
+ });
+ }).overrideAttrs (_: {
+ src = fetchFromGitHub {
+ owner = "KhronosGroup";
+ repo = "glslang";
+ rev = "e00d27c6d65b7d3e72506a311d7f053da4051295";
+ sha256 = "00lzvzk613gpm1vsdxffmx52z3c52ijwvzk4sfhh95p71kdydhgv";
+ };
+ });
+in
+
+stdenv.mkDerivation rec {
+ pname = "vulkan-validation-layers";
+ version = "1.2.141.0";
+
+ src = fetchFromGitHub {
+ owner = "KhronosGroup";
+ repo = "Vulkan-ValidationLayers";
+ rev = "sdk-${version}";
+ sha256 = "1yfas7q122kx74nbjk3wxlyacysgncvlvq081a5dp238m88vkmbj";
+ };
+
+ nativeBuildInputs = [
+ pkgconfig
+ cmake
+ python3
+ ];
+
+ buildInputs = [
+ localGlslang
+ localGlslang.spirv-headers
+ vulkan-headers
+ vulkan-loader
+ libxcb
+ libXrandr
+ wayland
+ ];
+
+ enableParallelBuilding = true;
+
+ cmakeFlags = [
+ "-DGLSLANG_INSTALL_DIR=${localGlslang}"
+ ];
+
+ # Help vulkan-loader find the validation layers
+ setupHook = writeText "setup-hook" ''
+ export XDG_DATA_DIRS=@out@/share:$XDG_DATA_DIRS
+ '';
+
+ # Include absolute paths to layer libraries in their associated
+ # layer definition json files.
+ patchPhase = ''
+ sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$<TARGET_FILE_NAME:\''${TARGET_NAME}>\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt
+ '';
+
+ meta = with stdenv.lib; {
+ description = "LunarG Vulkan loader";
+ homepage = "https://www.lunarg.com";
+ platforms = platforms.linux;
+ license = licenses.asl20;
+ maintainers = [ maintainers.ralith ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
new file mode 100644
index 000000000000..c0b34fe3ca68
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+ pname = "vultr-cli";
+ version = "0.4.0";
+
+ src = fetchFromGitHub {
+ owner = "vultr";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0gp1v62iqh3hk46cc5sh8a1nw5nf98m969fdhgxdppwr5dhj9isp";
+ };
+
+ vendorSha256 = null;
+
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "Official command line tool for Vultr services";
+ homepage = "https://github.com/vultr/vultr-cli";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/vultr/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/vultr/default.nix
new file mode 100644
index 000000000000..7c396f69f259
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/vultr/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+ pname = "vultr";
+ version = "2.0.2";
+ goPackagePath = "github.com/JamesClonk/vultr";
+
+ src = fetchFromGitHub {
+ owner = "JamesClonk";
+ repo = "vultr";
+ rev = "v${version}";
+ sha256 = "0br8nxi9syraarp4hzav9a3p4zxhyi45cq5dsclzxi3fga2l6mqg";
+ };
+
+ meta = {
+ description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
+ homepage = "https://github.com/JamesClonk/vultr";
+ license = stdenv.lib.licenses.mit;
+ maintainers = [ stdenv.lib.maintainers.zauberpony ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wabt/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wabt/default.nix
new file mode 100644
index 000000000000..a8ade2b815cc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wabt/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchpatch, fetchFromGitHub, cmake, python3, substituteAll }:
+
+stdenv.mkDerivation rec {
+ pname = "wabt";
+ version = "1.0.19";
+
+ src = fetchFromGitHub {
+ owner = "WebAssembly";
+ repo = "wabt";
+ rev = version;
+ sha256 = "0g1iy1icnjfkc0dadkrif4nlixpvq626023rgj02m9al64gf9hvx";
+ fetchSubmodules = true;
+ };
+
+ # https://github.com/WebAssembly/wabt/pull/1408
+ patches = [ (fetchpatch {
+ url = "https://github.com/WebAssembly/wabt/pull/1408/commits/28505f4db6e4561cf6840af5c304a9aa900c4987.patch";
+ sha256 = "1nh1ddsak6w51np17xf2r7i0czxrjslz1i4impmmp88h5bp2yjba";
+ }) ];
+
+ nativeBuildInputs = [ cmake ];
+ cmakeFlags = [ "-DBUILD_TESTS=OFF" "-DCMAKE_PROJECT_VERSION=${version}" ];
+ buildInputs = [ python3 ];
+
+ meta = with stdenv.lib; {
+ description = "The WebAssembly Binary Toolkit";
+ longDescription = ''
+ WABT (pronounced "wabbit") is a suite of tools for WebAssembly, including:
+ * wat2wasm: translate from WebAssembly text format to the WebAssembly
+ binary format
+ * wasm2wat: the inverse of wat2wasm, translate from the binary format
+ back to the text format (also known as a .wat)
+ * wasm-objdump: print information about a wasm binary. Similiar to
+ objdump.
+ * wasm-interp: decode and run a WebAssembly binary file using a
+ stack-based interpreter
+ * wat-desugar: parse .wat text form as supported by the spec interpreter
+ (s-expressions, flat syntax, or mixed) and print "canonical" flat
+ format
+ * wasm2c: convert a WebAssembly binary file to a C source and header
+ '';
+ homepage = "https://github.com/WebAssembly/wabt";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ ekleog ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wally-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wally-cli/default.nix
new file mode 100644
index 000000000000..d9abe6163a26
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wally-cli/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub, pkg-config, libusb1 }:
+
+buildGoModule rec {
+ pname = "wally-cli";
+ version = "2.0.0";
+
+ goPackagePath = "github.com/zsa/wally-cli";
+ subPackages = [ "." ];
+
+ nativeBuildInputs = [ pkg-config ];
+
+ buildInputs = [ libusb1 ];
+
+ src = fetchFromGitHub {
+ owner = "zsa";
+ repo = "wally-cli";
+ rev = "${version}-linux";
+ sha256 = "0xz3z18bbnf736ngjj6jhnp3p2j55m5jhnb2xl6l5hybracfyhm7";
+ };
+
+ vendorSha256 = "0jqx38x5qvir6zc5yq9p2adafwqhy4hil1k5g81rr1fvbn06k3a6";
+ runVend = true;
+
+ # Can be removed when https://github.com/zsa/wally-cli/pull/1 is merged.
+ doCheck = false;
+
+ meta = with lib; {
+ description = "A tool to flash firmware to mechanical keyboards";
+ homepage = "https://ergodox-ez.com/pages/wally-planck";
+ platforms = platforms.linux;
+ license = licenses.mit;
+ maintainers = [ maintainers.spacekookie ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
new file mode 100644
index 000000000000..eed61d4ec143
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
@@ -0,0 +1,2557 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "add"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
+
+[[package]]
+name = "arrayref"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+
+[[package]]
+name = "ascii"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
+
+[[package]]
+name = "askama"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
+dependencies = [
+ "askama_derive",
+ "askama_escape",
+ "askama_shared",
+]
+
+[[package]]
+name = "askama_derive"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
+dependencies = [
+ "askama_shared",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "askama_escape"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
+
+[[package]]
+name = "askama_shared"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
+dependencies = [
+ "askama_escape",
+ "humansize",
+ "nom",
+ "num-traits 0.2.12",
+ "percent-encoding 2.1.0",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "syn",
+ "toml",
+]
+
+[[package]]
+name = "assert_cmd"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+dependencies = [
+ "doc-comment",
+ "predicates",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+
+[[package]]
+name = "autocfg"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+
+[[package]]
+name = "base64"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "base64"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+
+[[package]]
+name = "bitflags"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "blake2b_simd"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "buf_redux"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
+dependencies = [
+ "memchr",
+ "safemem",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+
+[[package]]
+name = "byteorder"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+
+[[package]]
+name = "canvas"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "char"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+ "time",
+]
+
+[[package]]
+name = "chunked_transfer"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
+
+[[package]]
+name = "clap"
+version = "2.33.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.2.1",
+ "strsim 0.8.0",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "closures"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "crossbeam-utils",
+ "lazy_static",
+ "maybe-uninit",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "lazy_static",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.33+curl-7.71.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "deflate"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
+name = "deno"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
+
+[[package]]
+name = "difference"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+
+[[package]]
+name = "dirs"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "docopt"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "serde",
+ "strsim 0.9.3",
+]
+
+[[package]]
+name = "dom"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "either"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+
+[[package]]
+name = "enum_primitive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+dependencies = [
+ "num-traits 0.1.43",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime 1.3.0",
+ "log 0.4.11",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "fetch"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "futures"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-channel-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
+dependencies = [
+ "futures-core-preview",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+
+[[package]]
+name = "futures-core-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+
+[[package]]
+name = "futures-task"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "futures-util"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gif"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
+dependencies = [
+ "color_quant",
+ "lzw",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "guide-supported-types-examples"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hello_world"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "httparse"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+
+[[package]]
+name = "humansize"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "humantime"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+
+[[package]]
+name = "id-arena"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "idna"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "image"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95816db758249fe16f23a4e23f1a3a817fe11892dbfd1c5836f625324702158"
+dependencies = [
+ "byteorder",
+ "enum_primitive",
+ "gif",
+ "jpeg-decoder",
+ "num-iter",
+ "num-rational",
+ "num-traits 0.1.43",
+ "png",
+ "scoped_threadpool",
+]
+
+[[package]]
+name = "import_js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "inflate"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+
+[[package]]
+name = "itoa"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
+dependencies = [
+ "byteorder",
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.44"
+dependencies = [
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "julia_set"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "leb128"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
+
+[[package]]
+name = "libc"
+version = "0.2.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+
+[[package]]
+name = "libz-sys"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.11",
+]
+
+[[package]]
+name = "log"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lzw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+
+[[package]]
+name = "matches"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+[[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 = "memoffset"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[package]]
+name = "mime"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
+dependencies = [
+ "log 0.3.9",
+]
+
+[[package]]
+name = "mime_guess"
+version = "1.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
+dependencies = [
+ "mime",
+ "phf",
+ "phf_codegen",
+ "unicase",
+]
+
+[[package]]
+name = "multipart"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
+dependencies = [
+ "buf_redux",
+ "httparse",
+ "log 0.4.11",
+ "mime",
+ "mime_guess",
+ "quick-error",
+ "rand 0.4.6",
+ "safemem",
+ "tempdir",
+ "twoway",
+]
+
+[[package]]
+name = "no-std"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "memchr",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "normalize-line-endings"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "num-integer"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+
+[[package]]
+name = "openssl"
+version = "0.10.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
+dependencies = [
+ "bitflags 1.2.1",
+ "cfg-if",
+ "foreign-types",
+ "lazy_static",
+ "libc",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+[[package]]
+name = "openssl-src"
+version = "111.10.2+1.1.1g"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
+dependencies = [
+ "autocfg 1.0.0",
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "performance"
+version = "0.1.0"
+dependencies = [
+ "humantime 2.0.1",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "phf"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+dependencies = [
+ "phf_shared",
+ "rand 0.6.5",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+dependencies = [
+ "siphasher",
+ "unicase",
+]
+
+[[package]]
+name = "pin-project"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+
+[[package]]
+name = "png"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cb773e9a557edb568ce9935cf783e3cdcabe06a9449d41b3e5506d88e582c82"
+dependencies = [
+ "bitflags 0.7.0",
+ "deflate",
+ "inflate",
+ "num-iter",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+
+[[package]]
+name = "predicates"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+dependencies = [
+ "difference",
+ "float-cmp",
+ "normalize-line-endings",
+ "predicates-core",
+ "regex",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+dependencies = [
+ "predicates-core",
+ "treeline",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "syn-mid",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+dependencies = [
+ "autocfg 0.1.7",
+ "libc",
+ "rand_chacha 0.1.1",
+ "rand_core 0.4.2",
+ "rand_hc 0.1.0",
+ "rand_isaac",
+ "rand_jitter",
+ "rand_os",
+ "rand_pcg",
+ "rand_xorshift",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc 0.2.0",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+dependencies = [
+ "autocfg 0.1.7",
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_jitter"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+dependencies = [
+ "libc",
+ "rand_core 0.4.2",
+ "winapi",
+]
+
+[[package]]
+name = "rand_os"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+dependencies = [
+ "autocfg 0.1.7",
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rayon"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+dependencies = [
+ "autocfg 1.0.0",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-queue",
+ "crossbeam-utils",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "raytrace-parallel"
+version = "0.1.0"
+dependencies = [
+ "console_error_panic_hook",
+ "futures-channel-preview",
+ "js-sys",
+ "rayon",
+ "rayon-core",
+ "raytracer",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "raytracer"
+version = "0.1.0"
+source = "git+https://github.com/alexcrichton/raytracer?branch=update-deps#42faa13859f7d8d47fd18be785c108003a207786"
+dependencies = [
+ "image",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_users"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "rust-argon2",
+]
+
+[[package]]
+name = "regex"
+version = "1.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "request-animation-frame"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "rouille"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
+dependencies = [
+ "base64 0.9.3",
+ "chrono",
+ "filetime",
+ "multipart",
+ "num_cpus",
+ "rand 0.5.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "term",
+ "threadpool",
+ "time",
+ "tiny_http",
+ "url",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+dependencies = [
+ "base64 0.11.0",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rust-duck-typed-interfaces"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "sample"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
+
+[[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
+[[package]]
+name = "siphasher"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+
+[[package]]
+name = "slab"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+[[package]]
+name = "socket2"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "sourcefile"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "structopt"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "syn-mid"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+dependencies = [
+ "rand 0.4.6",
+ "remove_dir_all",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand 0.7.3",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "term"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
+dependencies = [
+ "byteorder",
+ "dirs",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[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 = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "time"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "tiny_http"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
+dependencies = [
+ "ascii",
+ "chrono",
+ "chunked_transfer",
+ "log 0.4.11",
+ "url",
+]
+
+[[package]]
+name = "tinyvec"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+
+[[package]]
+name = "todomvc"
+version = "0.1.0"
+dependencies = [
+ "askama",
+ "console_error_panic_hook",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "treeline"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+
+[[package]]
+name = "trybuild"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
+dependencies = [
+ "glob",
+ "lazy_static",
+ "serde",
+ "serde_json",
+ "termcolor",
+ "toml",
+]
+
+[[package]]
+name = "twoway"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "typescript-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "unicase"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+dependencies = [
+ "version_check 0.1.5",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+dependencies = [
+ "matches",
+]
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "url"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+dependencies = [
+ "idna",
+ "matches",
+ "percent-encoding 1.0.1",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "walrus"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d470d0583e65f4cab21a1ff3c1ba3dd23ae49e68f516f0afceaeb001b32af39"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "leb128",
+ "log 0.4.11",
+ "rayon",
+ "walrus-macro",
+ "wasmparser 0.59.0",
+]
+
+[[package]]
+name = "walrus-macro"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7c2bb690b44cb1b0fdcc54d4998d21f8bdaf706b93775425e440b174f39ad16"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.67"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro",
+ "wasm-bindgen-test",
+ "wasm-bindgen-test-crate-a",
+ "wasm-bindgen-test-crate-b",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.67"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-benchmark"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-cli"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "curl",
+ "diff",
+ "docopt",
+ "env_logger",
+ "log 0.4.11",
+ "openssl",
+ "predicates",
+ "rayon",
+ "rouille",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-cli-support",
+ "wasm-bindgen-shared",
+ "wit-printer",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-cli-support"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "base64 0.9.3",
+ "log 0.4.11",
+ "rustc-demangle",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-externref-xform",
+ "wasm-bindgen-multi-value-xform",
+ "wasm-bindgen-shared",
+ "wasm-bindgen-threads-xform",
+ "wasm-bindgen-wasm-conventions",
+ "wasm-bindgen-wasm-interpreter",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-externref-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.17"
+dependencies = [
+ "cfg-if",
+ "futures-channel-preview",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.67"
+dependencies = [
+ "quote",
+ "trybuild",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-multi-value-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-paint"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.67"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.17"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-a"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-b"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.17"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "wasm-bindgen-threads-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-conventions"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-interpreter"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "log 0.4.11",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-webidl"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "env_logger",
+ "heck",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "sourcefile",
+ "structopt",
+ "syn",
+ "wasm-bindgen-backend",
+ "weedle",
+]
+
+[[package]]
+name = "wasm-in-wasm"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm-in-wasm-imports"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm2js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+
+[[package]]
+name = "wasmparser"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
+
+[[package]]
+name = "wasmprinter"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.60.2",
+]
+
+[[package]]
+name = "wast"
+version = "21.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wat"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+dependencies = [
+ "wast",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.44"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "webaudio"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webgl"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webidl-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "wasm-bindgen-webidl",
+]
+
+[[package]]
+name = "webrtc_datachannel"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "websockets"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webxr"
+version = "0.1.0"
+dependencies = [
+ "futures",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "weedle"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[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-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[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 = "wit-parser"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
+dependencies = [
+ "anyhow",
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-printer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
+dependencies = [
+ "anyhow",
+ "wasmprinter",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-schema-version"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
+
+[[package]]
+name = "wit-text"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
+dependencies = [
+ "anyhow",
+ "wast",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-validator"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.59.0",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-walrus"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b532d7bc47d02a08463adc934301efbf67e7b1e1284f8a68edc85d1ca84fa125"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "walrus",
+ "wit-parser",
+ "wit-schema-version",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
+dependencies = [
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "without-a-bundler"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "without-a-bundler-no-modules"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
new file mode 100644
index 000000000000..0863905e932b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -0,0 +1,36 @@
+{ rustPlatform, fetchFromGitHub, lib, openssl, pkgconfig, stdenv, curl, Security
+, runCommand
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "wasm-bindgen-cli";
+ version = "0.2.67";
+
+ src =
+ let
+ tarball = fetchFromGitHub {
+ owner = "rustwasm";
+ repo = "wasm-bindgen";
+ rev = version;
+ sha256 = "0qx178aicbn59b150j5r78zya5n0yljvw4c4lhvg8x4cpfshjb5j";
+ };
+ in runCommand "source" { } ''
+ cp -R ${tarball} $out
+ chmod -R +w $out
+ cp ${./Cargo.lock} $out/Cargo.lock
+ '';
+
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
+ nativeBuildInputs = [ pkgconfig ];
+
+ cargoSha256 = "0chpw6syqxn824cbkdjx1s26vmajx511gc4mp9y64vy7b7asba6x";
+ cargoBuildFlags = [ "-p" pname ];
+
+ meta = with lib; {
+ homepage = "https://rustwasm.github.io/docs/wasm-bindgen/";
+ license = licenses.asl20;
+ description = "Facilitating high-level interactions between wasm modules and JavaScript";
+ maintainers = with maintainers; [ ma27 ];
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-pack/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
new file mode 100644
index 000000000000..93bda0b81807
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, libressl
+, curl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "wasm-pack";
+ version = "0.9.1";
+
+ src = fetchFromGitHub {
+ owner = "rustwasm";
+ repo = "wasm-pack";
+ rev = "v${version}";
+ sha256 = "1rqyfg6ajxxyfx87ar25nf5ck9hd0p12qgv98dicniqag8l4rvsr";
+ };
+
+ cargoSha256 = "0fw04hgxxqsbp1pylp32yd087r9bb8bpa05v90qdshkgp6znfl9s";
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ buildInputs = [
+ # LibreSSL works around segfault issues caused by OpenSSL being unable to
+ # gracefully exit while doing work.
+ # See: https://github.com/rustwasm/wasm-pack/issues/650
+ libressl
+ ] ++ stdenv.lib.optionals stdenv.isDarwin [ curl Security ];
+
+ # Most tests rely on external resources and build artifacts.
+ # Disabling check here to work with build sandboxing.
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A utility that builds rust-generated WebAssembly package";
+ homepage = "https://github.com/rustwasm/wasm-pack";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = [ maintainers.dhkl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/watchman/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/watchman/default.nix
new file mode 100644
index 000000000000..63f2b0e4933d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/watchman/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, config, fetchFromGitHub, autoconf, automake, pcre
+, libtool, pkgconfig, openssl
+, confFile ? config.watchman.confFile or null
+, withApple ? stdenv.isDarwin, CoreServices
+}:
+
+stdenv.mkDerivation rec {
+ pname = "watchman";
+ version = "4.9.0";
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = "watchman";
+ rev = "v${version}";
+ sha256 = "0fdaj5pmicm6j17d5q7px800m5rmam1a400x3hv1iiifnmhgnkal";
+ };
+
+ nativeBuildInputs = [ autoconf automake pkgconfig libtool ];
+ buildInputs = [ pcre openssl ]
+ ++ lib.optionals withApple [ CoreServices ];
+
+ configureFlags = [
+ "--enable-lenient"
+ "--enable-conffile=${if confFile == null then "no" else confFile}"
+ "--with-pcre=yes"
+
+ # For security considerations re: --disable-statedir, see:
+ # https://github.com/facebook/watchman/issues/178
+ "--disable-statedir"
+ ];
+
+ prePatch = ''
+ patchShebangs .
+ '';
+
+ preConfigure = ''
+ ./autogen.sh
+ '';
+
+ meta = with lib; {
+ description = "Watches files and takes action when they change";
+ homepage = "https://facebook.github.io/watchman";
+ maintainers = with maintainers; [ cstrahan ];
+ platforms = with platforms; linux ++ darwin;
+ license = licenses.asl20;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wiggle/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wiggle/default.nix
new file mode 100644
index 000000000000..b89d36273f86
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wiggle/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, ncurses, groff }:
+
+stdenv.mkDerivation {
+
+ name = "wiggle-1.2";
+
+ src = fetchurl {
+ url = "https://github.com/neilbrown/wiggle/archive/v1.2.tar.gz";
+ sha256 = "1gckj0zv2xznzg7i70p9dfmkhdpdg3953msi4gg5h6mpmmiiiwrw";
+ };
+
+ buildInputs = [ ncurses groff ];
+
+ configurePhase = ''
+ makeFlagsArray=( CFLAGS="-I. -O3"
+ STRIP="-s"
+ INSTALL="install"
+ BINDIR="$out/bin"
+ MANDIR="$out/share/man"
+ )
+ patchShebangs .
+ '';
+
+ meta = {
+ homepage = "http://blog.neil.brown.name/category/wiggle/";
+ description = "Tool for applying patches with conflicts";
+
+ longDescription = ''
+ Wiggle applies patches to a file in a similar manner to the patch(1)
+ program. The distinctive difference is, however, that wiggle will
+ attempt to apply a patch even if the "before" part of the patch doesn't
+ match the target file perfectly. This is achieved by breaking the file
+ and patch into words and finding the best alignment of words in the file
+ with words in the patch. Once this alignment has been found, any
+ differences (word-wise) in the patch are applied to the file as best as
+ possible. Also, wiggle will (in some cases) detect changes that have
+ already been applied, and will ignore them.
+ '';
+
+ license = stdenv.lib.licenses.gpl2Plus;
+ platforms = stdenv.lib.platforms.all;
+ };
+
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wiiload/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wiiload/default.nix
new file mode 100644
index 000000000000..37d909461d07
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wiiload/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, zlib }:
+stdenv.mkDerivation rec {
+ version = "0.5.1";
+ pname = "wiiload";
+
+ nativeBuildInputs = [ autoconf automake ];
+ buildInputs = [ zlib ];
+
+ src = fetchFromGitHub {
+ owner = "devkitPro";
+ repo = "wiiload";
+ rev = "v${version}";
+ sha256 = "0dffy603zggkqv7g1a2jninmi64vy519gpgkdfhjnijhdm9gs5m3";
+ };
+
+ preConfigure = "./autogen.sh";
+
+ meta = with stdenv.lib; {
+ description = "Load homebrew apps over network/usbgecko to your Wii";
+ homepage = "https://wiibrew.org/wiki/Wiiload";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ tomsmeets ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/winpdb/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/winpdb/default.nix
new file mode 100644
index 000000000000..8db0b719c67b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/winpdb/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pythonPackages, makeDesktopItem }:
+
+pythonPackages.buildPythonApplication rec {
+ name = "winpdb-1.4.8";
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "https://winpdb.googlecode.com/files/${name}.tar.gz";
+ sha256 = "0vkpd24r40j928vc04c721innv0168sbllg97v4zw10adm24d8fs";
+ };
+
+ propagatedBuildInputs = [ pythonPackages.wxPython ];
+
+ desktopItem = makeDesktopItem {
+ name = "winpdb";
+ exec = "winpdb";
+ icon = "winpdb";
+ comment = "Platform independend Python debugger";
+ desktopName = "Winpdb";
+ genericName = "Python Debugger";
+ categories = "Development;Debugger;";
+ };
+
+ # Don't call gnome-terminal with "--disable-factory" flag, which is
+ # unsupported since GNOME >= 3.10. Apparently, debian also does this fix:
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757718
+ postPatch = ''
+ sed -i "s/--disable-factory//" rpdb2.py
+ '';
+
+ postInstall = ''
+ mkdir -p "$out"/share/applications
+ cp "$desktopItem"/share/applications/* "$out"/share/applications/
+
+ mkdir -p "$out"/share/icons
+ cp artwork/winpdb-icon.svg "$out"/share/icons/winpdb.svg
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Platform independent Python debugger";
+ longDescription = ''
+ Winpdb is a platform independent GPL Python debugger with support for
+ multiple threads, namespace modification, embedded debugging, encrypted
+ communication and is up to 20 times faster than pdb.
+ '';
+ homepage = "http://winpdb.org/";
+ license = licenses.gpl2Plus;
+ platforms = platforms.all;
+ maintainers = [ maintainers.bjornfor ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wllvm/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wllvm/default.nix
new file mode 100644
index 000000000000..cd002bd2ef61
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wllvm/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ version = "1.2.8";
+ pname = "wllvm";
+ name = "${pname}-${version}";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1d88fzg4ba4r3hwrinnv6agiyj3xxdy4yryb8wz2ml51nc6bi591";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/travitch/whole-program-llvm";
+ description = "A wrapper script to build whole-program LLVM bitcode files";
+ license = licenses.mit;
+ maintainers = with maintainers; [ mic92 dtzWill ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wp-cli/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wp-cli/default.nix
new file mode 100644
index 000000000000..901435bb631f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wp-cli/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, lib, fetchurl, writeText, php, makeWrapper }:
+let
+ version = "2.4.0";
+
+ completion = fetchurl {
+ url = "https://raw.githubusercontent.com/wp-cli/wp-cli/v${version}/utils/wp-completion.bash";
+ sha256 = "15d330x6d3fizrm6ckzmdknqg6wjlx5fr87bmkbd5s6a1ihs0g24";
+ };
+
+ ini = writeText "php.ini" ''
+ [PHP]
+ memory_limit = -1 ; no limit as composer uses a lot of memory
+
+ [Phar]
+ phar.readonly = Off
+ '';
+in
+stdenv.mkDerivation rec {
+ pname = "wp-cli";
+ inherit version;
+
+ src = fetchurl {
+ url = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${pname}-${version}.phar";
+ sha256 = "0h5mjxrw4z3648v4wb4pvapz2a1mlmbszgggg4b7bvrrxn3cr78k";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ dir=$out/share/wp-cli
+ mkdir -p $out/bin $dir
+
+ install -Dm444 ${src} $dir/wp-cli
+ install -Dm444 ${ini} $dir/php.ini
+ install -Dm444 ${completion} $out/share/bash-completion/completions/wp
+
+ makeWrapper ${lib.getBin php}/bin/php $out/bin/wp \
+ --add-flags "-c $dir/php.ini" \
+ --add-flags "-f $dir/wp-cli"
+
+ # this is a very basic run test
+ $out/bin/wp --info >/dev/null
+ '';
+
+ meta = with lib; {
+ description = "A command line interface for WordPress";
+ homepage = "https://wp-cli.org";
+ license = licenses.mit;
+ maintainers = with maintainers; [ peterhoeg ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wrangler/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wrangler/default.nix
new file mode 100644
index 000000000000..fd84afb16175
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wrangler/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, curl, darwin }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "wrangler";
+ version = "1.10.3";
+
+ src = fetchFromGitHub {
+ owner = "cloudflare";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0703zlrmv0if575rj1mrgfg1a5qbf98sqjhhj09hab69i96wbrk9";
+ };
+
+ cargoSha256 = "0znzyqzvbqcl4mmxpsvaf592xrs968x57czj45jibmafq033dbfa";
+
+ nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+
+ buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [
+ curl
+ darwin.apple_sdk.frameworks.Security
+ darwin.apple_sdk.frameworks.CoreServices
+ darwin.apple_sdk.frameworks.CoreFoundation
+ ];
+
+ # tries to use "/homeless-shelter" and fails
+ doCheck = false;
+
+ meta = with stdenv.lib; {
+ description = "A CLI tool designed for folks who are interested in using Cloudflare Workers";
+ homepage = "https://github.com/cloudflare/wrangler";
+ license = with licenses; [ asl20 /* or */ mit ];
+ maintainers = with maintainers; [ filalex77 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ws/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ws/default.nix
new file mode 100644
index 000000000000..4a6d8892208d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ws/default.nix
@@ -0,0 +1,23 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+{ stdenv, buildGoPackage, fetchgit }:
+
+buildGoPackage rec {
+ pname = "ws";
+ version = "0.2.1";
+ rev = "e9404cb37e339333088b36f6a7909ff3be76931d";
+
+ goPackagePath = "github.com/hashrocket/ws";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/hashrocket/ws";
+ sha256 = "192slrz1cj1chzmfrl0d9ai8bq6s4w0iwpvxkhxb9krga7mkp9xb";
+ };
+
+ meta = with stdenv.lib; {
+ description = "websocket command line tool";
+ homepage = "https://github.com/hashrocket/ws";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix
new file mode 100644
index 000000000000..a3f8196b124b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, wxGTK31
+, meson
+, ninja
+}:
+
+stdenv.mkDerivation {
+ pname = "wxFormBuilder";
+ version = "unstable-2020-08-18";
+
+ src = fetchFromGitHub {
+ owner = "wxFormBuilder";
+ repo = "wxFormBuilder";
+ rev = "d053665cc33a79dd935b518b5e7aea6baf493c92";
+ sha256 = "sha256-hTO7Fyp5ZWpq2CfIYEXB85oOkNrqr6Njfh8h0t9B6wU=";
+ fetchSubmodules = true;
+ };
+
+ nativeBuildInputs = [
+ ninja
+ meson
+ ];
+
+ buildInputs = [
+ wxGTK31
+ ];
+
+ meta = with stdenv.lib; {
+ description = "RAD tool for wxWidgets GUI design";
+ homepage = "https://github.com/wxFormBuilder/wxFormBuilder";
+ license = licenses.gpl2;
+ maintainers = with maintainers; [ matthuszagh ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/default.nix
new file mode 100644
index 000000000000..cb2e6edd0e10
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, cmake, fetchFromGitHub, zlib, libxml2, libpng
+, CoreServices, CoreGraphics, ImageIO, ninja }:
+
+let
+ googletest = fetchFromGitHub {
+ owner = "google";
+ repo = "googletest";
+ rev = "43359642a1c16ad3f4fc575c7edd0cb935810815";
+ sha256 = "0y4xaah62fjr3isaryc3vfz3mn9xflr00vchdimj8785milxga4q";
+ };
+
+ linenoise = fetchFromGitHub {
+ owner = "antirez";
+ repo = "linenoise";
+ rev = "c894b9e59f02203dbe4e2be657572cf88c4230c3";
+ sha256 = "0wasql7ph5g473zxhc2z47z3pjp42q0dsn4gpijwzbxawid71b4w";
+ };
+in stdenv.mkDerivation {
+ pname = "xcbuild";
+
+ # Once a version is released that includes
+ # https://github.com/facebook/xcbuild/commit/183c087a6484ceaae860c6f7300caf50aea0d710,
+ # we can stop doing this -pre thing.
+ version = "0.1.2-pre";
+
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = "xcbuild";
+ rev = "32b9fbeb69bfa2682bd0351ec2f14548aaedd554";
+ sha256 = "1xxwg2849jizxv0g1hy0b1m3i7iivp9bmc4f5pi76swsn423d41m";
+ };
+
+ prePatch = ''
+ rmdir ThirdParty/*
+ cp -r --no-preserve=all ${googletest} ThirdParty/googletest
+ cp -r --no-preserve=all ${linenoise} ThirdParty/linenoise
+ '';
+
+ postPatch = stdenv.lib.optionalString (!stdenv.isDarwin) ''
+ # Avoid a glibc >= 2.25 deprecation warning that gets fatal via -Werror.
+ sed 1i'#include <sys/sysmacros.h>' \
+ -i Libraries/xcassets/Headers/xcassets/Slot/SystemVersion.h
+ '' + stdenv.lib.optionalString stdenv.isDarwin ''
+ # Apple Open Sourced LZFSE, but not libcompression, and it isn't
+ # part of an impure framework we can add
+ substituteInPlace Libraries/libcar/Sources/Rendition.cpp \
+ --replace "#if HAVE_LIBCOMPRESSION" "#if 0"
+ '';
+
+ enableParallelBuilding = true;
+
+ # TODO: instruct cmake not to put it in /usr, rather than cleaning up
+ postInstall = ''
+ mv $out/usr/* $out
+ rmdir $out/usr
+ '';
+
+ NIX_CFLAGS_COMPILE = "-Wno-error";
+
+ cmakeFlags = [ "-GNinja" ];
+
+ buildInputs = [ cmake zlib libxml2 libpng ninja ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices CoreGraphics ImageIO ];
+
+ meta = with stdenv.lib; {
+ description = "Xcode-compatible build tool";
+ homepage = "https://github.com/facebook/xcbuild";
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ copumpkin matthewbauer ];
+ license = with licenses; [ bsd2 bsd3 ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix
new file mode 100644
index 000000000000..e20dc878b535
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/platforms.nix
@@ -0,0 +1,301 @@
+{ runCommand, lib, sdks, xcodePlatform, writeText }:
+
+let
+
+ inherit (lib.generators) toPlist;
+
+ Info = {
+ CFBundleIdentifier = "com.apple.platform.${lib.toLower xcodePlatform}";
+ Type = "Platform";
+ Name = lib.toLower xcodePlatform;
+ };
+
+ Version = {
+ ProjectName = "OSXPlatformSupport";
+ };
+
+ # These files are all based off of Xcode spec fies found in
+ # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Speciications/.
+
+ # Based off of the MacOSX Architectures.xcpsec file. All i386 stuff
+ # is removed because NixPkgs only supports darwin-x86_64.
+ Architectures = [
+ {
+ Identifier = "Standard";
+ Type = "Architecture";
+ Name = "Standard Architectures (64-bit Intel)";
+ RealArchitectures = [ "x86_64" ];
+ ArchitectureSetting = "ARCHS_STANDARD";
+ }
+ {
+ Identifier = "Universal";
+ Type = "Architecture";
+ Name = "Universal (64-bit Intel)";
+ RealArchitectures = [ "x86_64" ];
+ ArchitectureSetting = "ARCHS_STANDARD_32_64_BIT";
+ }
+ {
+ Identifier = "Native";
+ Type = "Architecture";
+ Name = "Native Architecture of Build Machine";
+ ArchitectureSetting = "NATIVE_ARCH_ACTUAL";
+ }
+ {
+ Identifier = "Standard64bit";
+ Type = "Architecture";
+ Name = "64-bit Intel";
+ RealArchitectures = [ "x86_64" ];
+ ArchitectureSetting = "ARCHS_STANDARD_64_BIT";
+ }
+ {
+ Identifier = "x86_64";
+ Type = "Architecture";
+ Name = "Intel 64-bit";
+ }
+ {
+ Identifier = "Standard_Including_64_bit";
+ Type = "Architecture";
+ Name = "Standard Architectures (including 64-bit)";
+ RealArchitectures = [ "x86_64" ];
+ ArchitectureSetting = "ARCHS_STANDARD_INCLUDING_64_BIT";
+ }
+ ];
+
+ # Based off of the MacOSX Package Types.xcpsec file. Only keep the
+ # bare minimum needed.
+ PackageTypes = [
+ {
+ Identifier = "com.apple.package-type.mach-o-executable";
+ Type = "PackageType";
+ Name = "Mach-O Executable";
+ DefaultBuildSettings = {
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = "compiled.mach-o.executable";
+ Name = "$(EXECUTABLE_NAME)";
+ };
+ }
+ {
+ Identifier = "com.apple.package-type.mach-o-objfile";
+ Type = "PackageType";
+ Name = "Mach-O Object File";
+ DefaultBuildSettings = {
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = "compiled.mach-o.objfile";
+ Name = "$(EXECUTABLE_NAME)";
+ };
+ }
+ {
+ Identifier = "com.apple.package-type.mach-o-dylib";
+ Type = "PackageType";
+ Name = "Mach-O Dynamic Library";
+ DefaultBuildSettings = {
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = "compiled.mach-o.dylib";
+ Name = "$(EXECUTABLE_NAME)";
+ };
+ }
+ {
+ Identifier = "com.apple.package-type.static-library";
+ Type = "PackageType";
+ Name = "Mach-O Static Library";
+ DefaultBuildSettings = {
+ EXECUTABLE_PREFIX = "lib";
+ EXECUTABLE_SUFFIX = ".a";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_PATH = "$(EXECUTABLE_NAME)";
+ };
+ ProductReference = {
+ FileType = "archive.ar";
+ Name = "$(EXECUTABLE_NAME)";
+ IsLaunchable = "NO";
+ };
+ }
+ {
+ Identifier = "com.apple.package-type.wrapper";
+ Type = "PackageType";
+ Name = "Wrapper";
+ DefaultBuildSettings = {
+ WRAPPER_SUFFIX = ".bundle";
+ WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)";
+ CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Contents";
+ EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)";
+ EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/MacOS";
+ EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)";
+ INFOPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/Info.plist";
+ INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings";
+ PKGINFO_PATH = "$(CONTENTS_FOLDER_PATH)/PkgInfo";
+ PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist";
+ VERSIONPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/version.plist";
+ PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers";
+ PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders";
+ EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Executables";
+ FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks";
+ SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks";
+ SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedSupport";
+ UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources";
+ LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj";
+ DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation";
+ PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PlugIns";
+ SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts";
+ };
+ ProductReference = {
+ FileType = "wrapper.cfbundle";
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = "NO";
+ };
+ }
+ {
+ Identifier = "com.apple.package-type.wrapper.application";
+ Type = "PackageType";
+ BasedOn = "com.apple.package-type.wrapper";
+ Name = "Application Wrapper";
+ DefaultBuildSettings = {
+ GENERATE_PKGINFO_FILE = "YES";
+ };
+ ProductReference = {
+ FileType = "wrapper.application";
+ Name = "$(WRAPPER_NAME)";
+ IsLaunchable = "YES";
+ };
+ }
+ ];
+
+ # Based off of the MacOSX Product Types.xcpsec file. All
+ # bundles/wrapper are removed, because we prefer dynamic products in
+ # NixPkgs.
+ ProductTypes = [
+ {
+ Identifier = "com.apple.product-type.tool";
+ Type = "ProductType";
+ Name = "Command-line Tool";
+ PackageTypes = [ "com.apple.package-type.mach-o-executable" ];
+ }
+ {
+ Identifier = "com.apple.product-type.objfile";
+ Type = "ProductType";
+ Name = "Object File";
+ PackageTypes = [ "com.apple.package-type.mach-o-objfile" ];
+ }
+ {
+ Identifier = "com.apple.product-type.library.dynamic";
+ Type = "ProductType";
+ Name = "Dynamic Library";
+ PackageTypes = [ "com.apple.package-type.mach-o-dylib" ];
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "mh_dylib";
+ REZ_EXECUTABLE = "YES";
+ EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";
+ EXECUTABLE_EXTENSION = "dylib";
+ DYLIB_COMPATIBILITY_VERSION = "1";
+ DYLIB_CURRENT_VERSION = "1";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = "YES";
+ STRIP_STYLE = "debugging";
+ GCC_INLINES_ARE_PRIVATE_EXTERN = "YES";
+ CODE_SIGNING_ALLOWED = "YES";
+ CODE_SIGNING_REQUIRED = "NO";
+ };
+ }
+ {
+ Identifier = "com.apple.product-type.library.static";
+ Type = "ProductType";
+ Name = "Static Library";
+ PackageTypes = [ "com.apple.package-type.static-library" ];
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)";
+ MACH_O_TYPE = "staticlib";
+ REZ_EXECUTABLE = "YES";
+ EXECUTABLE_PREFIX = "lib";
+ EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)";
+ EXECUTABLE_EXTENSION = "a";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = "YES";
+ STRIP_STYLE = "debugging";
+ SEPARATE_STRIP = "YES";
+ CLANG_ENABLE_MODULE_DEBUGGING = "NO";
+ };
+ }
+ {
+ Type = "ProductType";
+ Identifier = "com.apple.product-type.bundle";
+ Name = "Bundle";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(WRAPPER_NAME)";
+ MACH_O_TYPE = "mh_bundle";
+ WRAPPER_PREFIX = "";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "bundle";
+ WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = "YES";
+ STRIP_STYLE = "non-global";
+ };
+ PackageTypes = [ "com.apple.package-type.wrapper" ];
+ IsWrapper = "YES";
+ HasInfoPlist = "YES";
+ HasInfoPlistStrings = "YES";
+ }
+ {
+ Identifier = "com.apple.product-type.application";
+ Type = "ProductType";
+ BasedOn = "com.apple.product-type.bundle";
+ Name = "Application";
+ DefaultBuildProperties = {
+ MACH_O_TYPE = "mh_execute";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "app";
+ };
+ PackageTypes = [ "com.apple.package-type.wrapper.application" ];
+ }
+ {
+ Type = "ProductType";
+ Identifier = "com.apple.product-type.framework";
+ Name = "Bundle";
+ DefaultBuildProperties = {
+ FULL_PRODUCT_NAME = "$(WRAPPER_NAME)";
+ MACH_O_TYPE = "mh_bundle";
+ WRAPPER_PREFIX = "";
+ WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)";
+ WRAPPER_EXTENSION = "bundle";
+ WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)";
+ FRAMEWORK_FLAG_PREFIX = "-framework";
+ LIBRARY_FLAG_PREFIX = "-l";
+ LIBRARY_FLAG_NOSPACE = "YES";
+ STRIP_STYLE = "non-global";
+ };
+ PackageTypes = [ "com.apple.package-type.wrapper" ];
+ IsWrapper = "YES";
+ HasInfoPlist = "YES";
+ HasInfoPlistStrings = "YES";
+ }
+ ];
+
+in
+
+runCommand "Platforms" {} ''
+ platform=$out/${xcodePlatform}.platform
+
+ install -D ${writeText "Info.plist" (toPlist {} Info)} $platform/Info.plist
+ install -D ${writeText "version.plist" (toPlist {} Version)} $platform/version.plist
+ install -D ${writeText "Architectures.xcspec" (toPlist {} Architectures)} $platform/Developer/Library/Xcode/Specifications/Architectures.xcspec
+ install -D ${writeText "PackageTypes.xcspec" (toPlist {} PackageTypes)} $platform/Developer/Library/Xcode/Specifications/PackageTypes.xcspec
+ install -D ${writeText "ProductTypes.xcspec" (toPlist {} ProductTypes)} $platform/Developer/Library/Xcode/Specifications/ProductTypes.xcspec
+
+ ln -s $platform $platform/usr
+
+ mkdir -p $platform/Developer
+ ln -s ${sdks} $platform/Developer/SDKs
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/sdks.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/sdks.nix
new file mode 100644
index 000000000000..5ff3ca6808dc
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/sdks.nix
@@ -0,0 +1,29 @@
+{ runCommand, lib, toolchainName, sdkName
+, writeText, version, xcodePlatform }:
+
+let
+ inherit (lib.generators) toPlist;
+
+ SDKSettings = {
+ CanonicalName = sdkName;
+ DisplayName = sdkName;
+ Toolchains = [ toolchainName ];
+ Version = version;
+ MaximumDeploymentTarget = version;
+ isBaseSDK = "YES";
+ };
+
+ SystemVersion = {
+ ProductName = "Mac OS X";
+ ProductVersion = version;
+ };
+in
+
+runCommand "SDKs" {} ''
+ sdk=$out/${sdkName}.sdk
+ install -D ${writeText "SDKSettings.plist" (toPlist {} SDKSettings)} $sdk/SDKSettings.plist
+ install -D ${writeText "SystemVersion.plist" (toPlist {} SystemVersion)} $sdk/System/Library/CoreServices/SystemVersion.plist
+ ln -s $sdk $sdk/usr
+
+ ln -s $sdk $out/${xcodePlatform}.sdk
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/setup-hook.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/setup-hook.sh
new file mode 100644
index 000000000000..f4b5abf2d8d3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/setup-hook.sh
@@ -0,0 +1,29 @@
+xcbuildBuildPhase() {
+ export DSTROOT=$out
+
+ runHook preBuild
+
+ echo "running xcodebuild"
+
+ xcodebuild SYMROOT=$PWD/Products OBJROOT=$PWD/Intermediates $xcbuildFlags build
+
+ runHook postBuild
+}
+
+xcbuildInstallPhase () {
+ runHook preInstall
+
+ # not implemented
+ # xcodebuild install
+
+ runHook postInstall
+}
+
+buildPhase=xcbuildBuildPhase
+if [ -z "${installPhase-}" ]; then
+ installPhase=xcbuildInstallPhase
+fi
+
+# if [ -d "*.xcodeproj" ]; then
+# buildPhase=xcbuildPhase
+# fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix
new file mode 100644
index 000000000000..e435f0978c5e
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/toolchains.nix
@@ -0,0 +1,73 @@
+{ runCommand, toolchainName, fetchurl, stdenv
+, buildPackages, lib, writeText }:
+
+let
+
+ inherit (lib) getBin optionalString;
+ inherit (lib.generators) toPlist;
+
+ ToolchainInfo = {
+ Identifier = toolchainName;
+ };
+
+ # We could pull this out of developer_cmds but it adds an annoying
+ # loop if we want to bootstrap and this is just a tiny script so I'm
+ # not going to bother.
+ mkdep-darwin-src = fetchurl {
+ url = "https://opensource.apple.com/source/developer_cmds/developer_cmds-63/mkdep/mkdep.sh";
+ sha256 = "0n4wpqfslfjs5zbys5yri8pfi2awyhlmknsf6laa5jzqbzq9x541";
+ executable = true;
+ };
+in
+
+runCommand "Toolchains" {} (''
+ toolchain=$out/XcodeDefault.xctoolchain
+ mkdir -p $toolchain
+
+ install -D ${writeText "ToolchainInfo.plist" (toPlist {} ToolchainInfo)} $toolchain/ToolchainInfo.plist
+
+ ln -s $toolchain $toolchain/usr
+
+ mkdir -p $toolchain/include
+ mkdir -p $toolchain/lib
+ mkdir -p $toolchain/libexec
+ mkdir -p $toolchain/share
+ mkdir -p $toolchain/bin
+
+ for bin in ${getBin stdenv.cc}/bin/*; do
+ ln -s $bin $toolchain/bin
+ done
+
+ for bin in ${getBin stdenv.cc.bintools.bintools}/bin/*; do
+ if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+ ln -s $bin $toolchain/bin
+ fi
+ done
+
+ ln -s ${buildPackages.yacc}/bin/yacc $toolchain/bin/yacc
+ ln -s ${buildPackages.yacc}/bin/bison $toolchain/bin/bison
+ ln -s ${buildPackages.flex}/bin/flex $toolchain/bin/flex
+ ln -s ${buildPackages.flex}/bin/flex++ $toolchain/bin/flex++
+ ln -s $toolchain/bin/flex $toolchain/bin/lex
+
+ ln -s ${buildPackages.m4}/bin/m4 $toolchain/bin/m4
+ ln -s $toolchain/bin/m4 $toolchain/bin/gm4
+
+ ln -s ${buildPackages.unifdef}/bin/unifdef $toolchain/bin/unifdef
+ ln -s ${buildPackages.unifdef}/bin/unifdefall $toolchain/bin/unifdefall
+
+ ln -s ${buildPackages.gperf}/bin/gperf $toolchain/bin/gperf
+ ln -s ${buildPackages.indent}/bin/indent $toolchain/bin/indent
+ ln -s ${buildPackages.ctags}/bin/ctags $toolchain/bin/ctags
+'' + optionalString stdenv.isDarwin ''
+ for bin in ${getBin buildPackages.darwin.cctools}/bin/*; do
+ if ! [ -e "$toolchain/bin/$(basename $bin)" ]; then
+ ln -s $bin $toolchain/bin
+ fi
+ done
+
+ ln -s ${buildPackages.darwin.bootstrap_cmds}/bin/mig $toolchain/bin
+ mkdir -p $toolchain/libexec
+ ln -s ${buildPackages.darwin.bootstrap_cmds}/libexec/migcom $toolchain/libexec
+ ln -s ${mkdep-darwin-src} $toolchain/bin/mkdep
+'')
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix
new file mode 100644
index 000000000000..861ef0fc8473
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcbuild/wrapper.nix
@@ -0,0 +1,142 @@
+{ stdenv, makeWrapper, writeText, runCommand
+, CoreServices, ImageIO, CoreGraphics
+, runtimeShell, callPackage
+, xcodePlatform ? stdenv.targetPlatform.xcodePlatform or "MacOSX"
+, xcodeVer ? stdenv.targetPlatform.xcodeVer or "9.4.1"
+, sdkVer ? stdenv.targetPlatform.sdkVer or "10.12" }:
+
+let
+
+ toolchainName = "com.apple.dt.toolchain.XcodeDefault";
+ sdkName = "${xcodePlatform}${sdkVer}";
+
+ # TODO: expose MACOSX_DEPLOYMENT_TARGET in nix so we can use it here.
+ sdkBuildVersion = "17E189";
+ xcodeSelectVersion = "2349";
+
+ xcbuild = callPackage ./default.nix {
+ inherit CoreServices ImageIO CoreGraphics stdenv;
+ };
+
+ toolchains = callPackage ./toolchains.nix {
+ inherit toolchainName stdenv;
+ };
+
+ sdks = callPackage ./sdks.nix {
+ inherit toolchainName sdkName xcodePlatform;
+ version = sdkVer;
+ };
+
+ platforms = callPackage ./platforms.nix {
+ inherit sdks xcodePlatform;
+ };
+
+ xcconfig = writeText "nix.xcconfig" ''
+ SDKROOT=${sdkName}
+ '';
+
+ xcode-select = writeText "xcode-select" ''
+#!${runtimeShell}
+while [ $# -gt 0 ]; do
+ case "$1" in
+ -h | --help) ;; # noop
+ -s | --switch) shift;; # noop
+ -r | --reset) ;; # noop
+ -v | --version) echo xcode-select version ${xcodeSelectVersion} ;;
+ -p | -print-path | --print-path) echo @DEVELOPER_DIR@ ;;
+ --install) ;; # noop
+ esac
+ shift
+done
+ '';
+
+ xcrun = writeText "xcrun" ''
+#!${runtimeShell}
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --sdk | -sdk) shift ;;
+ --find | -find)
+ shift
+ command -v $1 ;;
+ --log | -log) ;; # noop
+ --verbose | -verbose) ;; # noop
+ --no-cache | -no-cache) ;; # noop
+ --kill-cache | -kill-cache) ;; # noop
+ --show-sdk-path | -show-sdk-path)
+ echo ${sdks}/${sdkName}.sdk ;;
+ --show-sdk-platform-path | -show-sdk-platform-path)
+ echo ${platforms}/${xcodePlatform}.platform ;;
+ --show-sdk-version | -show-sdk-version)
+ echo ${sdkVer} ;;
+ --show-sdk-build-version | -show-sdk-build-version)
+ echo ${sdkBuildVersion} ;;
+ *) break ;;
+ esac
+ shift
+done
+if ! [[ -z "$@" ]]; then
+ exec "$@"
+fi
+ '';
+
+in
+
+runCommand "xcodebuild-${xcbuild.version}" {
+ nativeBuildInputs = [ makeWrapper ];
+ inherit (xcbuild) meta;
+
+ # ensure that the toolchain goes in PATH
+ propagatedBuildInputs = [ "${toolchains}/XcodeDefault.xctoolchain" ];
+
+ passthru = {
+ inherit xcbuild;
+ toolchain = "${toolchains}/XcodeDefault.xctoolchain";
+ sdk = "${sdks}/${sdkName}";
+ platform = "${platforms}/${xcodePlatform}.platform";
+ };
+
+ preferLocalBuild = true;
+} ''
+ mkdir -p $out/bin
+
+ ln -s $out $out/usr
+
+ mkdir -p $out/Library/Xcode
+ ln -s ${xcbuild}/Library/Xcode/Specifications $out/Library/Xcode/Specifications
+
+ ln -s ${platforms} $out/Platforms
+ ln -s ${toolchains} $out/Toolchains
+
+ mkdir -p $out/Applications/Xcode.app/Contents
+ ln -s $out $out/Applications/Xcode.app/Contents/Developer
+
+ # The native xcodebuild command supports an invocation like "xcodebuild -version -sdk" without specifying the specific SDK, so we simulate this by
+ # detecting this case and simulating the output; printing the header and appending the normal output via appending the sdk version to the positional
+ # arguments we pass through to the wrapped xcodebuild.
+ makeWrapper ${xcbuild}/bin/xcodebuild $out/bin/xcodebuild \
+ --add-flags "-xcconfig ${xcconfig}" \
+ --add-flags "DERIVED_DATA_DIR=." \
+ --set DEVELOPER_DIR "$out" \
+ --set SDKROOT ${sdkName} \
+ --run '[ "$#" -eq 2 ] && [ "$1" = "-version" ] && [ "$2" = "-sdk" ] && echo ${sdkName}.sdk - macOS ${sdkVer} \(macosx${sdkVer}\) && set -- "$@" "${sdkName}"' \
+ --run '[ "$1" = "-version" ] && [ "$#" -eq 1 ] && (echo Xcode ${xcodeVer}; echo Build version ${sdkBuildVersion}) && exit 0' \
+ --run '[ "$1" = "-license" ] && exit 0'
+
+ substitute ${xcode-select} $out/bin/xcode-select \
+ --subst-var-by DEVELOPER_DIR $out/Applications/Xcode.app/Contents/Developer
+ chmod +x $out/bin/xcode-select
+
+ substitute ${xcrun} $out/bin/xcrun
+ chmod +x $out/bin/xcrun
+
+ for bin in PlistBuddy actool builtin-copy builtin-copyPlist \
+ builtin-copyStrings builtin-copyTiff \
+ builtin-embeddedBinaryValidationUtility \
+ builtin-infoPlistUtility builtin-lsRegisterURL \
+ builtin-productPackagingUtility builtin-validationUtility \
+ lsbom plutil; do
+ ln -s ${xcbuild}/bin/$bin $out/bin/$bin
+ done
+
+ fixupPhase
+''
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile
new file mode 100644
index 000000000000..0b37143fe0eb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'xcpretty'
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile.lock
new file mode 100644
index 000000000000..c0b9676d27bd
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ rouge (2.0.7)
+ xcpretty (0.3.0)
+ rouge (~> 2.0.7)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ xcpretty
+
+BUNDLED WITH
+ 2.1.4
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/default.nix
new file mode 100644
index 000000000000..9c24b9810050
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/default.nix
@@ -0,0 +1,21 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+ pname = "xcpretty";
+ gemdir = ./.;
+
+ exes = [ "xcpretty" ];
+
+ passthru = {
+ updateScript = bundlerUpdateScript "xcpretty";
+ };
+
+ meta = with lib; {
+ description = "Flexible and fast xcodebuild formatter";
+ homepage = "https://github.com/supermarin/xcpretty";
+ license = licenses.mit;
+ maintainers = with maintainers; [
+ nicknovitski
+ ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/gemset.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/gemset.nix
new file mode 100644
index 000000000000..30c68a93c13f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xcpretty/gemset.nix
@@ -0,0 +1,19 @@
+{
+ rouge = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0sfikq1q8xyqqx690iiz7ybhzx87am4w50w8f2nq36l3asw4x89d";
+ type = "gem";
+ };
+ version = "2.0.7";
+ };
+ xcpretty = {
+ dependencies = ["rouge"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1xq47q2h5llj7b54rws4796904vnnjz7qqnacdv7wlp3gdbwrivm";
+ type = "gem";
+ };
+ version = "0.3.0";
+ };
+} \ No newline at end of file
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xib2nib/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xib2nib/default.nix
new file mode 100644
index 000000000000..4d62f5b85714
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xib2nib/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, pugixml, boost, PlistCpp }:
+
+stdenv.mkDerivation {
+ name = "xib2nib-730e177";
+
+ src = fetchFromGitHub {
+ owner = "matthewbauer";
+ repo = "xib2nib";
+ rev = "97c6a53aab83d919805efcae33cf80690e953d1e";
+ sha256 = "08442f4xg7racknj35nr56a4c62gvdgdw55pssbkn2qq0rfzziqq";
+ };
+
+ buildInputs = [ PlistCpp pugixml boost ];
+ makeFlags = [ "PREFIX=$(out)" ];
+
+ meta = with stdenv.lib; {
+ maintainers = with maintainers; [ matthewbauer ];
+ description = "Compiles CocoaTouch .xib files into .nib";
+ license = licenses.mit;
+ platforms = platforms.unix;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/xqilla/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/xqilla/default.nix
new file mode 100644
index 000000000000..7d8029ee1f14
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/xqilla/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, xercesc }:
+
+stdenv.mkDerivation rec {
+ pname = "xqilla";
+ version = "2.3.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/xqilla/XQilla-${version}.tar.gz";
+ sha256 = "0m9z7diw7pdyb4qycbqyr2x55s13v8310xsi7yz0inpw27q4vzdd";
+ };
+
+ configureFlags = [ "--with-xerces=${xercesc}" ];
+
+ meta = with stdenv.lib; {
+ description = "XQilla is an XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
+ license = licenses.asl20 ;
+ maintainers = with maintainers; [ obadz ];
+ platforms = platforms.all;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/default.nix
new file mode 100644
index 000000000000..e1427476dd8c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+
+buildGoPackage {
+ pname = "yaml2json";
+ version = "unstable-2017-05-03";
+ goPackagePath = "github.com/bronze1man/yaml2json";
+
+ goDeps = ./deps.nix;
+
+ src = fetchFromGitHub {
+ rev = "ee8196e587313e98831c040c26262693d48c1a0c";
+ owner = "bronze1man";
+ repo = "yaml2json";
+ sha256 = "16a2sqzbam5adbhfvilnpdabzwncs7kgpr0cn4gp09h2imzsprzw";
+ };
+
+ meta = with stdenv.lib; {
+ homepage = "https://github.com/bronze1man/yaml2json";
+ description = "Convert yaml to json";
+ license = with licenses; [ mit ];
+ maintainers = [ maintainers.adisbladis ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/deps.nix
new file mode 100644
index 000000000000..f907520cc872
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yaml2json/deps.nix
@@ -0,0 +1,11 @@
+[
+ {
+ goPackagePath = "gopkg.in/yaml.v2";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/yaml.v2";
+ rev = "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+ sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+ };
+ }
+]
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn/default.nix
new file mode 100644
index 000000000000..22ce3553352f
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, nodejs, fetchzip }:
+
+stdenv.mkDerivation rec {
+ pname = "yarn";
+ version = "1.22.5";
+
+ src = fetchzip {
+ url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
+ sha256 = "1yb1pb80jhw6mx1r28hf7zd54dygmnrf30r3fz7kn9nrgdpl5in8";
+ };
+
+ buildInputs = [ nodejs ];
+
+ installPhase = ''
+ mkdir -p $out/{bin,libexec/yarn/}
+ cp -R . $out/libexec/yarn
+ ln -s $out/libexec/yarn/bin/yarn.js $out/bin/yarn
+ ln -s $out/libexec/yarn/bin/yarn.js $out/bin/yarnpkg
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = "https://yarnpkg.com/";
+ description = "Fast, reliable, and secure dependency management for javascript";
+ license = licenses.bsd2;
+ maintainers = with maintainers; [ offline screendriver ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix
new file mode 100644
index 000000000000..fc9b149887a5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/fetch-source.nix
@@ -0,0 +1,10 @@
+{ pkgs ? (import ../../../../. {})
+, fetchFromGitHub ? pkgs.fetchFromGitHub
+}:
+
+fetchFromGitHub {
+ owner = "moretea";
+ repo = "yarn2nix";
+ rev = "9e7279edde2a4e0f5ec04c53f5cd64440a27a1ae";
+ sha256 = "0zz2lrwn3y3rb8gzaiwxgz02dvy3s552zc70zvfqc0zh5dhydgn7";
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh
new file mode 100755
index 000000000000..bfe1cda5e719
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/generate.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+
+###
+### This script runs 'nix-build' with ./fetch-source.nix and copies a subset
+### of the resulting store path into the current working directory.
+###
+### To disable running chmod, you may set the environment
+### variable "FIX_RIGHTS" to "no".
+###
+
+set -euo pipefail
+
+# 'nix-build' command
+NIX_BUILD_BIN="${NIX_BUILD_BIN:-"/usr/bin/env nix-build"}"
+
+# where to place the yarn2nix source
+TARGET_DIR="${TARGET_DIR:-"./yarn2nix"}"
+
+# whether to run 'chmod -R u=rwX,g=rX,o-rwx' on copied files in $TARGET_DIR
+FIX_RIGHTS="${FIX_RIGHTS:-"yes"}"
+
+fetch_git_source() {
+ [[ -f ./fetch-source.nix ]] && ret="$($NIX_BUILD_BIN --no-out-link ./fetch-source.nix)" && ec="$?" || ec="$?"
+ if [[ "$ec" == "0" ]]; then
+ echo "$ret"
+ else
+ printf "error: failed at 'fetch_git_source()' with '%s'" "$ret"
+ fi
+}
+
+result="$(fetch_git_source)"
+if [[ "$result" == "/nix/store"* ]]; then
+ mkdir -p "$TARGET_DIR"
+ cp -Rv \
+ "${result}/"{bin,internal,lib,nix,default.nix,package.json,yarn.nix,yarn.lock,LICENSE.txt} \
+ "$TARGET_DIR"
+ [[ "$FIX_RIGHTS" = "yes" ]] \
+ && chmod -v "u=rwX,g=rX,o-rwx" -R \
+ "$TARGET_DIR/"{bin,internal,lib,nix,default.nix,package.json,yarn.nix,yarn.lock,LICENSE.txt}
+fi
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/LICENSE.txt b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/LICENSE.txt
new file mode 100644
index 000000000000..94a9ed024d38
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/LICENSE.txt
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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 <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js
new file mode 100755
index 000000000000..d4f160b124d7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/bin/yarn2nix.js
@@ -0,0 +1,90 @@
+#!/usr/bin/env node
+
+const fs = require('fs')
+const lockfile = require('@yarnpkg/lockfile')
+const { docopt } = require('docopt')
+const deepEqual = require('deep-equal')
+const R = require('ramda')
+
+const fixPkgAddMissingSha1 = require('../lib/fixPkgAddMissingSha1')
+const mapObjIndexedReturnArray = require('../lib/mapObjIndexedReturnArray')
+const generateNix = require('../lib/generateNix')
+
+const USAGE = `
+Usage: yarn2nix [options]
+
+Options:
+ -h --help Shows this help.
+ --no-nix Hide the nix output
+ --no-patch Don't patch the lockfile if hashes are missing
+ --lockfile=FILE Specify path to the lockfile [default: ./yarn.lock].
+ --builtin-fetchgit Use builtin fetchGit for git dependencies to support on-the-fly generation of yarn.nix without an internet connection
+`
+
+const options = docopt(USAGE)
+
+const data = fs.readFileSync(options['--lockfile'], 'utf8')
+
+// json example:
+
+// {
+// type:'success',
+// object:{
+// 'abbrev@1':{
+// version:'1.0.9',
+// resolved:'https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135'
+// },
+// 'shell-quote@git+https://github.com/srghma/node-shell-quote.git#without_unlicenced_jsonify':{
+// version:'1.6.0',
+// resolved:'git+https://github.com/srghma/node-shell-quote.git#0aa381896e0cd7409ead15fd444f225807a61e0a'
+// },
+// '@graphile/plugin-supporter@git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git':{
+// version:'1.6.0',
+// resolved:'git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git#1234commit'
+// },
+// }
+// }
+
+const json = lockfile.parse(data)
+
+if (json.type !== 'success') {
+ throw new Error('yarn.lock parse error')
+}
+
+// Check for missing hashes in the yarn.lock and patch if necessary
+
+const pkgs = R.pipe(
+ mapObjIndexedReturnArray((value, key) => ({
+ ...value,
+ nameWithVersion: key,
+ })),
+ R.uniqBy(R.prop('resolved')),
+)(json.object)
+
+const fixedPkgsPromises = R.map(fixPkgAddMissingSha1, pkgs)
+
+;(async () => {
+ const fixedPkgs = await Promise.all(fixedPkgsPromises)
+
+ const origJson = lockfile.parse(data)
+
+ if (!deepEqual(origJson, json)) {
+ console.error('found changes in the lockfile', options['--lockfile'])
+
+ if (options['--no-patch']) {
+ console.error('...aborting')
+ process.exit(1)
+ }
+
+ fs.writeFileSync(options['--lockfile'], lockfile.stringify(json.object))
+ }
+
+ if (!options['--no-nix']) {
+ // print to stdout
+ console.log(generateNix(fixedPkgs, options['--builtin-fetchgit']))
+ }
+})().catch(error => {
+ console.error(error)
+
+ process.exit(1)
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
new file mode 100644
index 000000000000..89bc169d5038
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -0,0 +1,431 @@
+{ pkgs ? import <nixpkgs> {}
+, nodejs ? pkgs.nodejs
+, yarn ? pkgs.yarn
+}:
+
+let
+ inherit (pkgs) stdenv lib fetchurl linkFarm callPackage git rsync makeWrapper;
+
+ compose = f: g: x: f (g x);
+ id = x: x;
+ composeAll = builtins.foldl' compose id;
+in rec {
+ # Export yarn again to make it easier to find out which yarn was used.
+ inherit yarn;
+
+ # Re-export pkgs
+ inherit pkgs;
+
+ unlessNull = item: alt:
+ if item == null then alt else item;
+
+ reformatPackageName = pname:
+ let
+ # regex adapted from `validate-npm-package-name`
+ # will produce 3 parts e.g.
+ # "@someorg/somepackage" -> [ "@someorg/" "someorg" "somepackage" ]
+ # "somepackage" -> [ null null "somepackage" ]
+ parts = builtins.tail (builtins.match "^(@([^/]+)/)?([^/]+)$" pname);
+ # if there is no organisation we need to filter out null values.
+ non-null = builtins.filter (x: x != null) parts;
+ in builtins.concatStringsSep "-" non-null;
+
+ # https://docs.npmjs.com/files/package.json#license
+ # TODO: support expression syntax (OR, AND, etc)
+ spdxLicense = licstr:
+ if licstr == "UNLICENSED" then
+ lib.licenses.unfree
+ else
+ lib.findFirst
+ (l: l ? spdxId && l.spdxId == licstr)
+ { shortName = licstr; }
+ (builtins.attrValues lib.licenses);
+
+ # Generates the yarn.nix from the yarn.lock file
+ mkYarnNix = { yarnLock, flags ? [] }:
+ pkgs.runCommand "yarn.nix" {}
+ "${yarn2nix}/bin/yarn2nix --lockfile ${yarnLock} --no-patch --builtin-fetchgit ${lib.escapeShellArgs flags} > $out";
+
+ # Loads the generated offline cache. This will be used by yarn as
+ # the package source.
+ importOfflineCache = yarnNix:
+ let
+ pkg = callPackage yarnNix { };
+ in
+ pkg.offline_cache;
+
+ defaultYarnFlags = [
+ "--offline"
+ "--frozen-lockfile"
+ "--ignore-engines"
+ "--ignore-scripts"
+ ];
+
+ mkYarnModules = {
+ name, # safe name and version, e.g. testcompany-one-modules-1.0.0
+ pname, # original name, e.g @testcompany/one
+ version,
+ packageJSON,
+ yarnLock,
+ yarnNix ? mkYarnNix { inherit yarnLock; },
+ yarnFlags ? defaultYarnFlags,
+ pkgConfig ? {},
+ preBuild ? "",
+ postBuild ? "",
+ workspaceDependencies ? [], # List of yarn packages
+ }:
+ let
+ offlineCache = importOfflineCache yarnNix;
+
+ extraBuildInputs = (lib.flatten (builtins.map (key:
+ pkgConfig.${key}.buildInputs or []
+ ) (builtins.attrNames pkgConfig)));
+
+ postInstall = (builtins.map (key:
+ if (pkgConfig.${key} ? postInstall) then
+ ''
+ for f in $(find -L -path '*/node_modules/${key}' -type d); do
+ (cd "$f" && (${pkgConfig.${key}.postInstall}))
+ done
+ ''
+ else
+ ""
+ ) (builtins.attrNames pkgConfig));
+
+ workspaceJSON = pkgs.writeText
+ "${name}-workspace-package.json"
+ (builtins.toJSON { private = true; workspaces = ["deps/**"]; }); # scoped packages need second splat
+
+ workspaceDependencyLinks = lib.concatMapStringsSep "\n"
+ (dep: ''
+ mkdir -p "deps/${dep.pname}"
+ ln -sf ${dep.packageJSON} "deps/${dep.pname}/package.json"
+ '')
+ workspaceDependencies;
+
+ in stdenv.mkDerivation {
+ inherit preBuild postBuild name;
+ phases = ["configurePhase" "buildPhase"];
+ buildInputs = [ yarn nodejs git ] ++ extraBuildInputs;
+
+ configurePhase = ''
+ # Yarn writes cache directories etc to $HOME.
+ export HOME=$PWD/yarn_home
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ mkdir -p "deps/${pname}"
+ cp ${packageJSON} "deps/${pname}/package.json"
+ cp ${workspaceJSON} ./package.json
+ cp ${yarnLock} ./yarn.lock
+ chmod +w ./yarn.lock
+
+ yarn config --offline set yarn-offline-mirror ${offlineCache}
+
+ # Do not look up in the registry, but in the offline cache.
+ ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
+
+ ${workspaceDependencyLinks}
+
+ yarn install ${lib.escapeShellArgs yarnFlags}
+
+ ${lib.concatStringsSep "\n" postInstall}
+
+ mkdir $out
+ mv node_modules $out/
+ mv deps $out/
+ patchShebangs $out
+
+ runHook postBuild
+ '';
+ };
+
+ # This can be used as a shellHook in mkYarnPackage. It brings the built node_modules into
+ # the shell-hook environment.
+ linkNodeModulesHook = ''
+ if [[ -d node_modules || -L node_modules ]]; then
+ echo "./node_modules is present. Replacing."
+ rm -rf node_modules
+ fi
+
+ ln -s "$node_modules" node_modules
+ '';
+
+ mkYarnWorkspace = {
+ src,
+ packageJSON ? src + "/package.json",
+ yarnLock ? src + "/yarn.lock",
+ packageOverrides ? {},
+ ...
+ }@attrs:
+ let
+ package = lib.importJSON packageJSON;
+
+ packageGlobs = package.workspaces;
+
+ globElemToRegex = lib.replaceStrings ["*"] [".*"];
+
+ # PathGlob -> [PathGlobElem]
+ splitGlob = lib.splitString "/";
+
+ # Path -> [PathGlobElem] -> [Path]
+ # Note: Only directories are included, everything else is filtered out
+ expandGlobList = base: globElems:
+ let
+ elemRegex = globElemToRegex (lib.head globElems);
+ rest = lib.tail globElems;
+ children = lib.attrNames (lib.filterAttrs (name: type: type == "directory") (builtins.readDir base));
+ matchingChildren = lib.filter (child: builtins.match elemRegex child != null) children;
+ in if globElems == []
+ then [ base ]
+ else lib.concatMap (child: expandGlobList (base+("/"+child)) rest) matchingChildren;
+
+ # Path -> PathGlob -> [Path]
+ expandGlob = base: glob: expandGlobList base (splitGlob glob);
+
+ packagePaths = lib.concatMap (expandGlob src) packageGlobs;
+
+ packages = lib.listToAttrs (map (src:
+ let
+ packageJSON = src + "/package.json";
+
+ package = lib.importJSON packageJSON;
+
+ allDependencies = lib.foldl (a: b: a // b) {} (map (field: lib.attrByPath [field] {} package) ["dependencies" "devDependencies"]);
+
+ # { [name: String] : { pname : String, packageJSON : String, ... } } -> { [pname: String] : version } -> [{ pname : String, packageJSON : String, ... }]
+ getWorkspaceDependencies = packages: allDependencies:
+ let
+ packageList = lib.attrValues packages;
+ in
+ composeAll [
+ (lib.filter (x: x != null))
+ (lib.mapAttrsToList (pname: _version: lib.findFirst (package: package.pname == pname) null packageList))
+ ] allDependencies;
+
+ workspaceDependencies = getWorkspaceDependencies packages allDependencies;
+
+ name = reformatPackageName package.name;
+ in {
+ inherit name;
+ value = mkYarnPackage (
+ builtins.removeAttrs attrs ["packageOverrides"]
+ // { inherit src packageJSON yarnLock workspaceDependencies; }
+ // lib.attrByPath [name] {} packageOverrides
+ );
+ })
+ packagePaths
+ );
+ in packages;
+
+ mkYarnPackage = {
+ name ? null,
+ src,
+ packageJSON ? src + "/package.json",
+ yarnLock ? src + "/yarn.lock",
+ yarnNix ? mkYarnNix { inherit yarnLock; },
+ yarnFlags ? defaultYarnFlags,
+ yarnPreBuild ? "",
+ pkgConfig ? {},
+ extraBuildInputs ? [],
+ publishBinsFor ? null,
+ workspaceDependencies ? [], # List of yarnPackages
+ ...
+ }@attrs:
+ let
+ package = lib.importJSON packageJSON;
+ pname = package.name;
+ safeName = reformatPackageName pname;
+ version = package.version or attrs.version;
+ baseName = unlessNull name "${safeName}-${version}";
+
+ workspaceDependenciesTransitive = lib.unique (
+ (lib.flatten (builtins.map (dep: dep.workspaceDependencies) workspaceDependencies))
+ ++ workspaceDependencies
+ );
+
+ deps = mkYarnModules {
+ name = "${safeName}-modules-${version}";
+ preBuild = yarnPreBuild;
+ workspaceDependencies = workspaceDependenciesTransitive;
+ inherit packageJSON pname version yarnLock yarnNix yarnFlags pkgConfig;
+ };
+
+ publishBinsFor_ = unlessNull publishBinsFor [pname];
+
+ linkDirFunction = ''
+ linkDirToDirLinks() {
+ target=$1
+ if [ ! -f "$target" ]; then
+ mkdir -p "$target"
+ elif [ -L "$target" ]; then
+ local new=$(mktemp -d)
+ trueSource=$(realpath "$target")
+ if [ "$(ls $trueSource | wc -l)" -gt 0 ]; then
+ ln -s $trueSource/* $new/
+ fi
+ rm -r "$target"
+ mv "$new" "$target"
+ fi
+ }
+ '';
+
+ workspaceDependencyCopy = lib.concatMapStringsSep "\n"
+ (dep: ''
+ # ensure any existing scope directory is not a symlink
+ linkDirToDirLinks "$(dirname node_modules/${dep.pname})"
+ mkdir -p "deps/${dep.pname}"
+ tar -xf "${dep}/tarballs/${dep.name}.tgz" --directory "deps/${dep.pname}" --strip-components=1
+ if [ ! -e "deps/${dep.pname}/node_modules" ]; then
+ ln -s "${deps}/deps/${dep.pname}/node_modules" "deps/${dep.pname}/node_modules"
+ fi
+ '')
+ workspaceDependenciesTransitive;
+
+ in stdenv.mkDerivation (builtins.removeAttrs attrs ["yarnNix" "pkgConfig" "workspaceDependencies"] // {
+ inherit src pname;
+
+ name = baseName;
+
+ buildInputs = [ yarn nodejs rsync ] ++ extraBuildInputs;
+
+ node_modules = deps + "/node_modules";
+
+ configurePhase = attrs.configurePhase or ''
+ runHook preConfigure
+
+ for localDir in npm-packages-offline-cache node_modules; do
+ if [[ -d $localDir || -L $localDir ]]; then
+ echo "$localDir dir present. Removing."
+ rm -rf $localDir
+ fi
+ done
+
+ # move convent of . to ./deps/${pname}
+ mv $PWD $NIX_BUILD_TOP/temp
+ mkdir -p "$PWD/deps/${pname}"
+ rm -fd "$PWD/deps/${pname}"
+ mv $NIX_BUILD_TOP/temp "$PWD/deps/${pname}"
+ cd $PWD
+
+ ln -s ${deps}/deps/${pname}/node_modules "deps/${pname}/node_modules"
+
+ cp -r $node_modules node_modules
+ chmod -R +w node_modules
+
+ ${linkDirFunction}
+
+ linkDirToDirLinks "$(dirname node_modules/${pname})"
+ ln -s "deps/${pname}" "node_modules/${pname}"
+
+ ${workspaceDependencyCopy}
+
+ # Help yarn commands run in other phases find the package
+ echo "--cwd deps/${pname}" > .yarnrc
+ runHook postConfigure
+ '';
+
+ # Replace this phase on frontend packages where only the generated
+ # files are an interesting output.
+ installPhase = attrs.installPhase or ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,libexec/${pname}}
+ mv node_modules $out/libexec/${pname}/node_modules
+ mv deps $out/libexec/${pname}/deps
+
+ node ${./internal/fixup_bin.js} $out/bin $out/libexec/${pname}/node_modules ${lib.concatStringsSep " " publishBinsFor_}
+
+ runHook postInstall
+ '';
+
+ doDist = true;
+
+ distPhase = attrs.distPhase or ''
+ # pack command ignores cwd option
+ rm -f .yarnrc
+ cd $out/libexec/${pname}/deps/${pname}
+ mkdir -p $out/tarballs/
+ yarn pack --offline --ignore-scripts --filename $out/tarballs/${baseName}.tgz
+ '';
+
+ passthru = {
+ inherit pname package packageJSON deps;
+ workspaceDependencies = workspaceDependenciesTransitive;
+ } // (attrs.passthru or {});
+
+ meta = {
+ inherit (nodejs.meta) platforms;
+ description = packageJSON.description or "";
+ homepage = packageJSON.homepage or "";
+ version = packageJSON.version or "";
+ license = if packageJSON ? license then spdxLicense packageJSON.license else "";
+ } // (attrs.meta or {});
+ });
+
+ yarn2nix = mkYarnPackage {
+ src =
+ let
+ src = ./.;
+
+ mkFilter = { dirsToInclude, filesToInclude, root }: path: type:
+ let
+ inherit (pkgs.lib) any flip elem hasSuffix hasPrefix elemAt splitString;
+
+ subpath = elemAt (splitString "${toString root}/" path) 1;
+ spdir = elemAt (splitString "/" subpath) 0;
+ in elem spdir dirsToInclude ||
+ (type == "regular" && elem subpath filesToInclude);
+ in builtins.filterSource
+ (mkFilter {
+ dirsToInclude = ["bin" "lib"];
+ filesToInclude = ["package.json" "yarn.lock"];
+ root = src;
+ })
+ src;
+
+ # yarn2nix is the only package that requires the yarnNix option.
+ # All the other projects can auto-generate that file.
+ yarnNix = ./yarn.nix;
+
+ # Using the filter above and importing package.json from the filtered
+ # source results in an error in restricted mode. To circumvent this,
+ # we import package.json from the unfiltered source
+ packageJSON = ./package.json;
+
+ yarnFlags = defaultYarnFlags ++ ["--production=true"];
+
+ buildPhase = ''
+ source ${./nix/expectShFunctions.sh}
+
+ expectFilePresent ./node_modules/.yarn-integrity
+
+ # check dependencies are installed
+ expectFilePresent ./node_modules/@yarnpkg/lockfile/package.json
+
+ # check devDependencies are not installed
+ expectFileOrDirAbsent ./node_modules/.bin/eslint
+ expectFileOrDirAbsent ./node_modules/eslint/package.json
+ '';
+ };
+
+ fixup_yarn_lock = stdenv.mkDerivation {
+ name = "fixup_yarn_lock";
+
+ buildInputs = [ nodejs ];
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/lib
+ mkdir -p $out/bin
+
+ cp ${./lib/urlToName.js} $out/lib/urlToName.js
+ cp ${./internal/fixup_yarn_lock.js} $out/bin/fixup_yarn_lock
+
+ patchShebangs $out
+ '';
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_bin.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_bin.js
new file mode 100755
index 000000000000..6f0b5c93fa0c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_bin.js
@@ -0,0 +1,53 @@
+#!/usr/bin/env node
+
+/* Usage:
+ * node fixup_bin.js <bin_dir> <modules_dir> [<bin_pkg_1>, <bin_pkg_2> ... ]
+ */
+
+const fs = require('fs')
+const path = require('path')
+
+const derivationBinPath = process.argv[2]
+const nodeModules = process.argv[3]
+const packagesToPublishBin = process.argv.slice(4)
+
+function processPackage(name) {
+ console.log('fixup_bin: Processing ', name)
+
+ const packagePath = `${nodeModules}/${name}`
+ const packageJsonPath = `${packagePath}/package.json`
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath))
+
+ if (!packageJson.bin) {
+ console.log('fixup_bin: No binaries provided')
+ return
+ }
+
+ // There are two alternative syntaxes for `bin`
+ // a) just a plain string, in which case the name of the package is the name of the binary.
+ // b) an object, where key is the name of the eventual binary, and the value the path to that binary.
+ if (typeof packageJson.bin === 'string') {
+ const binName = packageJson.bin
+ packageJson.bin = {}
+ packageJson.bin[packageJson.name] = binName
+ }
+
+ // eslint-disable-next-line no-restricted-syntax, guard-for-in
+ for (const binName in packageJson.bin) {
+ const binPath = packageJson.bin[binName]
+ const normalizedBinName = binName.replace('@', '').replace('/', '-')
+
+ const targetPath = path.normalize(`${packagePath}/${binPath}`)
+ const createdPath = `${derivationBinPath}/${normalizedBinName}`
+
+ console.log(
+ `fixup_bin: creating link ${createdPath} that points to ${targetPath}`,
+ )
+
+ fs.symlinkSync(targetPath, createdPath)
+ }
+}
+
+packagesToPublishBin.forEach(pkg => {
+ processPackage(pkg)
+})
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js
new file mode 100755
index 000000000000..86e92f852087
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js
@@ -0,0 +1,49 @@
+#!/usr/bin/env node
+
+/* Usage:
+ * node fixup_yarn_lock.js yarn.lock
+ */
+
+const fs = require('fs')
+const readline = require('readline')
+
+const urlToName = require('../lib/urlToName')
+
+const yarnLockPath = process.argv[2]
+
+const readFile = readline.createInterface({
+ input: fs.createReadStream(yarnLockPath, { encoding: 'utf8' }),
+
+ // Note: we use the crlfDelay option to recognize all instances of CR LF
+ // ('\r\n') in input.txt as a single line break.
+ crlfDelay: Infinity,
+
+ terminal: false, // input and output should be treated like a TTY
+})
+
+const result = []
+
+readFile
+ .on('line', line => {
+ const arr = line.match(/^ {2}resolved "([^#]+)#([^"]+)"$/)
+
+ if (arr !== null) {
+ const [_, url, shaOrRev] = arr
+
+ const fileName = urlToName(url)
+
+ result.push(` resolved "${fileName}#${shaOrRev}"`)
+ } else {
+ result.push(line)
+ }
+ })
+ .on('close', () => {
+ fs.writeFile(yarnLockPath, result.join('\n'), 'utf8', err => {
+ if (err) {
+ console.error(
+ 'fixup_yarn_lock: fatal error when trying to write to yarn.lock',
+ err,
+ )
+ }
+ })
+ })
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/fixPkgAddMissingSha1.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/fixPkgAddMissingSha1.js
new file mode 100644
index 000000000000..2826f36e3260
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/fixPkgAddMissingSha1.js
@@ -0,0 +1,66 @@
+const https = require('https')
+const crypto = require('crypto')
+
+// TODO:
+// make test case where getSha1 function is used, i.e. the case when resolved is without sha1?
+// consider using https://github.com/request/request-promise-native
+
+function getSha1(url) {
+ return new Promise((resolve, reject) => {
+ https.get(url, res => {
+ const { statusCode } = res
+ const hash = crypto.createHash('sha1')
+
+ if (statusCode !== 200) {
+ const err = new Error(`Request Failed.\nStatus Code: ${statusCode}`)
+
+ // consume response data to free up memory
+ res.resume()
+
+ reject(err)
+ }
+
+ res.on('data', chunk => {
+ hash.update(chunk)
+ })
+
+ res.on('end', () => {
+ resolve(hash.digest('hex'))
+ })
+
+ res.on('error', reject)
+ })
+ })
+}
+
+// Object -> Object
+async function fixPkgAddMissingSha1(pkg) {
+ // local dependency
+
+ if (!pkg.resolved) {
+ console.error(
+ `yarn2nix: can't find "resolved" field for package ${
+ pkg.nameWithVersion
+ }, you probably required it using "file:...", this feature is not supported, ignoring`,
+ )
+ return pkg
+ }
+
+ const [url, sha1] = pkg.resolved.split('#', 2)
+
+ if (sha1) {
+ return pkg
+ }
+
+ // if there is no sha1 in resolved url
+ // (this could happen if yarn.lock was generated by older version of yarn)
+ // - request it from registry by https and add it to pkg
+ const newSha1 = await getSha1(url)
+
+ return {
+ ...pkg,
+ resolved: `${url}#${newSha1}`,
+ }
+}
+
+module.exports = fixPkgAddMissingSha1
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
new file mode 100644
index 000000000000..cebe7c715d1b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
@@ -0,0 +1,124 @@
+const R = require('ramda')
+
+const urlToName = require('./urlToName')
+const { execFileSync } = require('child_process')
+
+// fetchgit transforms
+//
+// "shell-quote@git+https://github.com/srghma/node-shell-quote.git#without_unlicenced_jsonify":
+// version "1.6.0"
+// resolved "git+https://github.com/srghma/node-shell-quote.git#1234commit"
+//
+// to
+//
+// builtins.fetchGit {
+// url = "https://github.com/srghma/node-shell-quote.git";
+// ref = "without_unlicenced_jsonify";
+// rev = "1234commit";
+// }
+//
+// and transforms
+//
+// "@graphile/plugin-supporter@git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git":
+// version "0.6.0"
+// resolved "git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git#1234commit"
+//
+// to
+//
+// builtins.fetchGit {
+// url = "https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git";
+// ref = "master";
+// rev = "1234commit";
+// }
+
+function prefetchgit(url, rev) {
+ return JSON.parse(
+ execFileSync("nix-prefetch-git", ["--rev", rev, url], {
+ stdio: [ "ignore", "pipe", "ignore" ],
+ timeout: 60000,
+ })
+ ).sha256
+}
+
+function fetchgit(fileName, url, rev, branch, builtinFetchGit) {
+ return ` {
+ name = "${fileName}";
+ path =
+ let${builtinFetchGit ? `
+ repo = builtins.fetchGit {
+ url = "${url}";
+ ref = "${branch}";
+ rev = "${rev}";
+ };
+ ` : `
+ repo = fetchgit {
+ url = "${url}";
+ rev = "${rev}";
+ sha256 = "${prefetchgit(url, rev)}";
+ };
+ `}in
+ runCommandNoCC "${fileName}" { buildInputs = [gnutar]; } ''
+ # Set u+w because tar-fs can't unpack archives with read-only dirs
+ # https://github.com/mafintosh/tar-fs/issues/79
+ tar cf $out --mode u+w -C \${repo} .
+ '';
+ }`
+}
+
+function fetchLockedDep(builtinFetchGit) {
+ return function (pkg) {
+ const { nameWithVersion, resolved } = pkg
+
+ if (!resolved) {
+ console.error(
+ `yarn2nix: can't find "resolved" field for package ${nameWithVersion}, you probably required it using "file:...", this feature is not supported, ignoring`,
+ )
+ return ''
+ }
+
+ const [url, sha1OrRev] = resolved.split('#')
+
+ const fileName = urlToName(url)
+
+ if (url.startsWith('git+') || url.startsWith("git:")) {
+ const rev = sha1OrRev
+
+ const [_, branch] = nameWithVersion.split('#')
+
+ const urlForGit = url.replace(/^git\+/, '')
+
+ return fetchgit(fileName, urlForGit, rev, branch || 'master', builtinFetchGit)
+ }
+
+ const sha = sha1OrRev
+
+ return ` {
+ name = "${fileName}";
+ path = fetchurl {
+ name = "${fileName}";
+ url = "${url}";
+ sha1 = "${sha}";
+ };
+ }`
+ }
+}
+
+const HEAD = `
+{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+`.trim()
+
+// Object -> String
+function generateNix(pkgs, builtinFetchGit) {
+ const nameWithVersionAndPackageNix = R.map(fetchLockedDep(builtinFetchGit), pkgs)
+
+ const packagesDefinition = R.join(
+ '\n',
+ R.values(nameWithVersionAndPackageNix),
+ )
+
+ return R.join('\n', [HEAD, packagesDefinition, ' ];', '}'])
+}
+
+module.exports = generateNix
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js
new file mode 100644
index 000000000000..83c6634f7c84
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/mapObjIndexedReturnArray.js
@@ -0,0 +1,21 @@
+const _curry2 = require('ramda/src/internal/_curry2')
+const _map = require('ramda/src/internal/_map')
+const keys = require('ramda/src/keys')
+
+// mapObjIndexed: ((v, k, {k: v}) → v') → {k: v} → {k: v'}
+// mapObjIndexedReturnArray: ((v, k, {k: v}) → v') → {k: v} → [v']
+
+/*
+ * @example
+ *
+ * const xyz = { x: 1, y: 2, z: 3 };
+ * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);
+ *
+ * mapObjIndexedReturnArray(prependKeyAndDouble, xyz); //=> ['x2', 'y4', 'z6']
+ */
+
+const mapObjIndexedReturnArray = _curry2((fn, obj) =>
+ _map(key => fn(obj[key], key, obj), keys(obj)),
+)
+
+module.exports = mapObjIndexedReturnArray
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
new file mode 100644
index 000000000000..81feaaf3a659
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
@@ -0,0 +1,21 @@
+const path = require('path')
+
+// String -> String
+
+// @url examples:
+// - https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz
+// - https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz
+// - git+https://github.com/srghma/node-shell-quote.git
+// - git+https://1234user:1234pass@git.graphile.com/git/users/1234user/postgraphile-supporter.git
+
+function urlToName(url) {
+ if (url.startsWith('git+')) {
+ return path.basename(url)
+ }
+
+ return url
+ .replace('https://registry.yarnpkg.com/', '') // prevents having long directory names
+ .replace(/[@/:-]/g, '_') // replace @ and : and - characters with underscore
+}
+
+module.exports = urlToName
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/nix/expectShFunctions.sh b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/nix/expectShFunctions.sh
new file mode 100644
index 000000000000..fad230c69212
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/nix/expectShFunctions.sh
@@ -0,0 +1,30 @@
+expectFilePresent () {
+ if [ -f "$1" ]; then
+ echo "Test passed: file is present - $1"
+ else
+ echo "Test failed: file is absent - $1"
+ exit 1
+ fi
+}
+
+expectFileOrDirAbsent () {
+ if [ ! -e "$1" ];
+ then
+ echo "Test passed: file or dir is absent - $1"
+ else
+ echo "Test failed: file or dir is present - $1"
+ exit 1
+ fi
+}
+
+expectEqual () {
+ if [ "$1" == "$2" ];
+ then
+ echo "Test passed: output is equal to expected_output"
+ else
+ echo "Test failed: output is not equal to expected_output:"
+ echo " output - $1"
+ echo " expected_output - $2"
+ exit 1
+ fi
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/package.json b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/package.json
new file mode 100644
index 000000000000..5b85a68ca5c7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "yarn2nix",
+ "version": "1.0.0",
+ "description": "Convert packages.json and yarn.lock into a Nix expression that downloads all the dependencies",
+ "main": "index.js",
+ "repository": ".",
+ "author": "Maarten Hoogendoorn <maarten@moretea.nl>",
+ "license": "MIT",
+ "scripts": {
+ "yarn2nix": "bin/yarn2nix.js",
+ "format": "prettier-eslint --write './**/*.{js,jsx,json}'",
+ "lint": "eslint ."
+ },
+ "bin": {
+ "yarn2nix": "bin/yarn2nix.js"
+ },
+ "engines" : {
+ "node" : ">=8.0.0"
+ },
+ "dependencies": {
+ "@yarnpkg/lockfile": "^1.1.0",
+ "deep-equal": "^1.0.1",
+ "docopt": "^0.6.2",
+ "ramda": "^0.26.1"
+ },
+ "devDependencies": {
+ "babel-eslint": "^10.0.1",
+ "eslint": "^5.11.1",
+ "eslint-config-airbnb": "^17.1.0",
+ "eslint-config-prettier": "^3.3.0",
+ "eslint-config-standard": "^12.0.0",
+ "eslint-plugin-import": "^2.14.0",
+ "eslint-plugin-jsx-a11y": "^6.1.2",
+ "eslint-plugin-node": "^8.0.0",
+ "eslint-plugin-promise": "^4.0.1",
+ "eslint-plugin-react": "^7.12.2",
+ "eslint-plugin-standard": "^4.0.0",
+ "husky": "^1.3.1",
+ "lint-staged": "^8.1.0",
+ "prettier-eslint-cli": "^4.7.1"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "lint-staged"
+ }
+ }
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock
new file mode 100644
index 000000000000..803f6b3875ab
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.lock
@@ -0,0 +1,3427 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
+ integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
+ dependencies:
+ "@babel/highlight" "^7.0.0"
+
+"@babel/generator@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc"
+ integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg==
+ dependencies:
+ "@babel/types" "^7.2.2"
+ jsesc "^2.5.1"
+ lodash "^4.17.10"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
+"@babel/helper-function-name@^7.1.0":
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
+ integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.0.0"
+ "@babel/template" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@babel/helper-get-function-arity@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
+ integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@babel/helper-split-export-declaration@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813"
+ integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@babel/highlight@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
+ integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
+ dependencies:
+ chalk "^2.0.0"
+ esutils "^2.0.2"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.0.0", "@babel/parser@^7.2.2", "@babel/parser@^7.2.3":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz#32f5df65744b70888d17872ec106b02434ba1489"
+ integrity sha512-0LyEcVlfCoFmci8mXx8A5oIkpkOgyo8dRHtxBnK9RRBwxO2+JZPNsqtVEZQ7mJFPxnXF9lfmU24mHOPI0qnlkA==
+
+"@babel/template@^7.1.0":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907"
+ integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.2.2"
+ "@babel/types" "^7.2.2"
+
+"@babel/traverse@^7.0.0":
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz#7ff50cefa9c7c0bd2d81231fdac122f3957748d8"
+ integrity sha512-Z31oUD/fJvEWVR0lNZtfgvVt512ForCTNKYcJBGbPb1QZfve4WGH8Wsy7+Mev33/45fhP/hwQtvgusNdcCMgSw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/generator" "^7.2.2"
+ "@babel/helper-function-name" "^7.1.0"
+ "@babel/helper-split-export-declaration" "^7.0.0"
+ "@babel/parser" "^7.2.3"
+ "@babel/types" "^7.2.2"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.10"
+
+"@babel/types@^7.0.0", "@babel/types@^7.2.2":
+ version "7.2.2"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e"
+ integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg==
+ dependencies:
+ esutils "^2.0.2"
+ lodash "^4.17.10"
+ to-fast-properties "^2.0.0"
+
+"@iamstarkov/listr-update-renderer@0.4.1":
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz#d7c48092a2dcf90fd672b6c8b458649cb350c77e"
+ integrity sha512-IJyxQWsYDEkf8C8QthBn5N8tIUR9V9je6j3sMIpAkonaadjbvxmRC6RAhpa3RKxndhNnU2M6iNbtJwd7usQYIA==
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^2.3.0"
+ strip-ansi "^3.0.1"
+
+"@samverschueren/stream-to-observable@^0.3.0":
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
+ integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==
+ dependencies:
+ any-observable "^0.3.0"
+
+"@yarnpkg/lockfile@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31"
+ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+ integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+acorn-jsx@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
+ dependencies:
+ acorn "^3.0.4"
+
+acorn-jsx@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
+ integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
+
+acorn@^3.0.4:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+ integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
+
+acorn@^5.5.0:
+ version "5.7.3"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
+ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
+
+acorn@^6.0.2:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz#81730c0815f3f3b34d8efa95cb7430965f4d887a"
+ integrity sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==
+
+ajv-keywords@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
+ integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=
+
+ajv@^5.2.3, ajv@^5.3.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+ajv@^6.5.3, ajv@^6.6.1:
+ version "6.6.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d"
+ integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==
+ dependencies:
+ fast-deep-equal "^2.0.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-escapes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
+ integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+ integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+ integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
+ integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+ integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+
+ansi-styles@^3.1.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+any-observable@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
+ integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
+
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
+aria-query@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc"
+ integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=
+ dependencies:
+ ast-types-flow "0.0.7"
+ commander "^2.11.0"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+ integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
+array-includes@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
+ integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.7.0"
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+ integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
+
+arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+ integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
+
+ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
+ integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0=
+
+astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+ integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+
+atob@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+axobject-query@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
+ integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
+ dependencies:
+ ast-types-flow "0.0.7"
+
+babel-code-frame@^6.22.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babel-eslint@^10.0.1:
+ version "10.0.1"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed"
+ integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.0.0"
+ "@babel/traverse" "^7.0.0"
+ "@babel/types" "^7.0.0"
+ eslint-scope "3.7.1"
+ eslint-visitor-keys "^1.0.0"
+
+babel-runtime@^6.23.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+boolify@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/boolify/-/boolify-1.0.1.tgz#b5c09e17cacd113d11b7bb3ed384cc012994d86b"
+ integrity sha1-tcCeF8rNET0Rt7s+04TMASmU2Gs=
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+ integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+
+builtin-modules@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+ integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
+ dependencies:
+ callsites "^2.0.0"
+
+caller-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=
+ dependencies:
+ callsites "^0.2.0"
+
+caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
+ dependencies:
+ caller-callsite "^2.0.0"
+
+callsites@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+ integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=
+
+callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+ integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
+
+callsites@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
+ integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
+
+camelcase-keys@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
+ integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=
+ dependencies:
+ camelcase "^4.1.0"
+ map-obj "^2.0.0"
+ quick-lru "^1.0.0"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+ integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
+
+chalk@2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba"
+ integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
+chalk@^1.0.0, chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
+ integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+chardet@^0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
+ integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=
+
+chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+ integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
+
+ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+ integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+circular-json@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+ integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+cli-cursor@^2.0.0, cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=
+ dependencies:
+ restore-cursor "^2.0.0"
+
+cli-truncate@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+ integrity sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=
+ dependencies:
+ slice-ansi "0.0.4"
+ string-width "^1.0.1"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+ integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+ integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+ integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+commander@^2.11.0, commander@^2.14.1, commander@^2.9.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+ integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+
+common-tags@^1.4.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937"
+ integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==
+
+component-emitter@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+concat-stream@^1.6.0:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+ integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+ integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
+
+core-js@^2.4.0:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
+ integrity sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+ integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cosmiconfig@5.0.6:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39"
+ integrity sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==
+ dependencies:
+ is-directory "^0.3.1"
+ js-yaml "^3.9.0"
+ parse-json "^4.0.0"
+
+cosmiconfig@^5.0.7:
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04"
+ integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA==
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.9.0"
+ parse-json "^4.0.0"
+
+cross-spawn@^5.0.1, cross-spawn@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+ version "6.0.5"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+damerau-levenshtein@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
+ integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=
+
+date-fns@^1.27.2:
+ version "1.30.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
+ integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+ dependencies:
+ ms "2.0.0"
+
+debug@^3.1.0:
+ version "3.2.6"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
+ dependencies:
+ ms "^2.1.1"
+
+debug@^4.0.1, debug@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ dependencies:
+ ms "^2.1.1"
+
+decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+ integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+
+dedent@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
+ integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=
+
+deep-equal@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+ integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+ integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+
+define-properties@^1.1.2, define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+del@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
+ integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=
+ dependencies:
+ globby "^6.1.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ p-map "^1.1.1"
+ pify "^3.0.0"
+ rimraf "^2.2.8"
+
+dlv@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz#270f6737b30d25b6657a7e962c784403f85137e5"
+ integrity sha512-xxD4VSH67GbRvSGUrckvha94RD7hjgOH7rqGxiytLpkaeMvixOHFZTGFK6EkIm3T761OVHT8ABHmGkq9gXgu6Q==
+
+docopt@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz#b28e9e2220da5ec49f7ea5bb24a47787405eeb11"
+ integrity sha1-so6eIiDaXsSffqW7JKR3h0Be6xE=
+
+doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+doctrine@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
+ dependencies:
+ esutils "^2.0.2"
+
+elegant-spinner@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
+ integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=
+
+emoji-regex@^6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2"
+ integrity sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==
+
+end-of-stream@^1.1.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
+ integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
+ dependencies:
+ once "^1.4.0"
+
+error-ex@^1.2.0, error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.7.0:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
+ integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
+ dependencies:
+ es-to-primitive "^1.2.0"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ is-callable "^1.1.4"
+ is-regex "^1.0.4"
+ object-keys "^1.0.12"
+
+es-to-primitive@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
+ integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+eslint-config-airbnb-base@^13.1.0:
+ version "13.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c"
+ integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==
+ dependencies:
+ eslint-restricted-globals "^0.1.1"
+ object.assign "^4.1.0"
+ object.entries "^1.0.4"
+
+eslint-config-airbnb@^17.1.0:
+ version "17.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732"
+ integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==
+ dependencies:
+ eslint-config-airbnb-base "^13.1.0"
+ object.assign "^4.1.0"
+ object.entries "^1.0.4"
+
+eslint-config-prettier@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz#41afc8d3b852e757f06274ed6c44ca16f939a57d"
+ integrity sha512-Bc3bh5bAcKNvs3HOpSi6EfGA2IIp7EzWcg2tS4vP7stnXu/J1opihHDM7jI9JCIckyIDTgZLSWn7J3HY0j2JfA==
+ dependencies:
+ get-stdin "^6.0.0"
+
+eslint-config-standard@^12.0.0:
+ version "12.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9"
+ integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==
+
+eslint-import-resolver-node@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
+ integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
+ dependencies:
+ debug "^2.6.9"
+ resolve "^1.5.0"
+
+eslint-module-utils@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746"
+ integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=
+ dependencies:
+ debug "^2.6.8"
+ pkg-dir "^1.0.0"
+
+eslint-plugin-es@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6"
+ integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==
+ dependencies:
+ eslint-utils "^1.3.0"
+ regexpp "^2.0.1"
+
+eslint-plugin-import@^2.14.0:
+ version "2.14.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8"
+ integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==
+ dependencies:
+ contains-path "^0.1.0"
+ debug "^2.6.8"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.3.1"
+ eslint-module-utils "^2.2.0"
+ has "^1.0.1"
+ lodash "^4.17.4"
+ minimatch "^3.0.3"
+ read-pkg-up "^2.0.0"
+ resolve "^1.6.0"
+
+eslint-plugin-jsx-a11y@^6.1.2:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88"
+ integrity sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==
+ dependencies:
+ aria-query "^3.0.0"
+ array-includes "^3.0.3"
+ ast-types-flow "^0.0.7"
+ axobject-query "^2.0.1"
+ damerau-levenshtein "^1.0.4"
+ emoji-regex "^6.5.1"
+ has "^1.0.3"
+ jsx-ast-utils "^2.0.1"
+
+eslint-plugin-node@^8.0.0:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964"
+ integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==
+ dependencies:
+ eslint-plugin-es "^1.3.1"
+ eslint-utils "^1.3.1"
+ ignore "^5.0.2"
+ minimatch "^3.0.4"
+ resolve "^1.8.1"
+ semver "^5.5.0"
+
+eslint-plugin-promise@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2"
+ integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg==
+
+eslint-plugin-react@^7.12.2:
+ version "7.12.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.3.tgz#b9ca4cd7cd3f5d927db418a1950366a12d4568fd"
+ integrity sha512-WTIA3cS8OzkPeCi4KWuPmjR33lgG9r9Y/7RmnLTRw08MZKgAfnK/n3BO4X0S67MPkVLazdfCNT/XWqcDu4BLTA==
+ dependencies:
+ array-includes "^3.0.3"
+ doctrine "^2.1.0"
+ has "^1.0.3"
+ jsx-ast-utils "^2.0.1"
+ object.fromentries "^2.0.0"
+ prop-types "^15.6.2"
+ resolve "^1.9.0"
+
+eslint-plugin-standard@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c"
+ integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==
+
+eslint-restricted-globals@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
+ integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=
+
+eslint-scope@3.7.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
+ integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-scope@^3.7.1:
+ version "3.7.3"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535"
+ integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-scope@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172"
+ integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-utils@^1.3.0, eslint-utils@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
+ integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
+
+eslint-visitor-keys@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
+ integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==
+
+eslint@^4.0.0, eslint@^4.5.0:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300"
+ integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==
+ dependencies:
+ ajv "^5.3.0"
+ babel-code-frame "^6.22.0"
+ chalk "^2.1.0"
+ concat-stream "^1.6.0"
+ cross-spawn "^5.1.0"
+ debug "^3.1.0"
+ doctrine "^2.1.0"
+ eslint-scope "^3.7.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^3.5.4"
+ esquery "^1.0.0"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^11.0.1"
+ ignore "^3.3.3"
+ imurmurhash "^0.1.4"
+ inquirer "^3.0.6"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.9.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.4"
+ minimatch "^3.0.2"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.2"
+ pluralize "^7.0.0"
+ progress "^2.0.0"
+ regexpp "^1.0.1"
+ require-uncached "^1.0.3"
+ semver "^5.3.0"
+ strip-ansi "^4.0.0"
+ strip-json-comments "~2.0.1"
+ table "4.0.2"
+ text-table "~0.2.0"
+
+eslint@^5.11.1:
+ version "5.12.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz#fab3b908f60c52671fb14e996a450b96c743c859"
+ integrity sha512-LntwyPxtOHrsJdcSwyQKVtHofPHdv+4+mFwEe91r2V13vqpM8yLr7b1sW+Oo/yheOPkWYsYlYJCkzlFAt8KV7g==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.5.3"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
+ doctrine "^2.1.0"
+ eslint-scope "^4.0.0"
+ eslint-utils "^1.3.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^5.0.0"
+ esquery "^1.0.1"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ functional-red-black-tree "^1.0.1"
+ glob "^7.1.2"
+ globals "^11.7.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ inquirer "^6.1.0"
+ js-yaml "^3.12.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.5"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.2"
+ pluralize "^7.0.0"
+ progress "^2.0.0"
+ regexpp "^2.0.1"
+ semver "^5.5.1"
+ strip-ansi "^4.0.0"
+ strip-json-comments "^2.0.1"
+ table "^5.0.2"
+ text-table "^0.2.0"
+
+espree@^3.5.2, espree@^3.5.4:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
+ integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==
+ dependencies:
+ acorn "^5.5.0"
+ acorn-jsx "^3.0.0"
+
+espree@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c"
+ integrity sha512-1MpUfwsdS9MMoN7ZXqAr9e9UKdVHDcvrJpyx7mm1WuQlx/ygErEQBzgi5Nh5qBHIoYweprhtMkTCb9GhcAIcsA==
+ dependencies:
+ acorn "^6.0.2"
+ acorn-jsx "^5.0.0"
+ eslint-visitor-keys "^1.0.0"
+
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+esquery@^1.0.0, esquery@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
+ integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
+ dependencies:
+ estraverse "^4.0.0"
+
+esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
+ dependencies:
+ estraverse "^4.1.0"
+
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+ integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+ integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+external-editor@^2.0.4:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
+ integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==
+ dependencies:
+ chardet "^0.4.0"
+ iconv-lite "^0.4.17"
+ tmp "^0.0.33"
+
+external-editor@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
+ integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+fast-deep-equal@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+ integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
+
+fast-deep-equal@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+ integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+ integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+ integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+figures@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+figures@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+ integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+file-entry-cache@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
+ integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=
+ dependencies:
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+find-parent-dir@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
+ integrity sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
+ dependencies:
+ locate-path "^2.0.0"
+
+find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+ dependencies:
+ locate-path "^3.0.0"
+
+flat-cache@^1.2.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f"
+ integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==
+ dependencies:
+ circular-json "^0.3.1"
+ graceful-fs "^4.1.2"
+ rimraf "~2.6.2"
+ write "^0.2.1"
+
+for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+ integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
+ dependencies:
+ map-cache "^0.2.2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+ integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+g-status@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97"
+ integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==
+ dependencies:
+ arrify "^1.0.1"
+ matcher "^1.0.0"
+ simple-git "^1.85.0"
+
+get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+ integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
+
+get-own-enumerable-property-symbols@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203"
+ integrity sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==
+
+get-stdin@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
+ integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=
+
+get-stdin@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
+ integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+ integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
+
+get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+ dependencies:
+ pump "^3.0.0"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+ integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
+
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+ integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@~7.0.6:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a"
+ integrity sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^11.0.1, globals@^11.1.0, globals@^11.7.0:
+ version "11.9.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249"
+ integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==
+
+globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+graceful-fs@^4.1.2:
+ version "4.1.15"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
+ integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+ integrity sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
+ integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+ integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+has@^1.0.1, has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+hosted-git-info@^2.1.4:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
+ integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+
+husky@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0"
+ integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==
+ dependencies:
+ cosmiconfig "^5.0.7"
+ execa "^1.0.0"
+ find-up "^3.0.0"
+ get-stdin "^6.0.0"
+ is-ci "^2.0.0"
+ pkg-dir "^3.0.0"
+ please-upgrade-node "^3.1.1"
+ read-pkg "^4.0.1"
+ run-node "^1.0.0"
+ slash "^2.0.0"
+
+iconv-lite@^0.4.17, iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ignore@^3.2.7, ignore@^3.3.3:
+ version "3.3.10"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+ integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
+
+ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+ integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.0.2:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45"
+ integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g==
+
+import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
+import-fresh@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
+ integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+ integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^3.0.0, indent-string@^3.1.0, indent-string@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+ integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+ integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+inquirer@^3.0.6:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9"
+ integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^2.0.4"
+ figures "^2.0.0"
+ lodash "^4.3.0"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rx-lite "^4.0.8"
+ rx-lite-aggregates "^4.0.8"
+ string-width "^2.1.0"
+ strip-ansi "^4.0.0"
+ through "^2.3.6"
+
+inquirer@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52"
+ integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==
+ dependencies:
+ ansi-escapes "^3.0.0"
+ chalk "^2.0.0"
+ cli-cursor "^2.1.0"
+ cli-width "^2.0.0"
+ external-editor "^3.0.0"
+ figures "^2.0.0"
+ lodash "^4.17.10"
+ mute-stream "0.0.7"
+ run-async "^2.2.0"
+ rxjs "^6.1.0"
+ string-width "^2.1.0"
+ strip-ansi "^5.0.0"
+ through "^2.3.6"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+ integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-callable@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
+ integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
+
+is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+ dependencies:
+ ci-info "^2.0.0"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
+ dependencies:
+ kind-of "^6.0.0"
+
+is-date-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+ integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+ integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+ integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+ integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-glob@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+ integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=
+ dependencies:
+ is-extglob "^2.1.1"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
+ dependencies:
+ kind-of "^3.0.2"
+
+is-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+
+is-observable@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
+ integrity sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==
+ dependencies:
+ symbol-observable "^1.1.0"
+
+is-path-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+ integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=
+
+is-path-in-cwd@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
+ integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==
+ dependencies:
+ is-path-inside "^1.0.0"
+
+is-path-inside@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ integrity sha1-jvW33lBDej/cprToZe96pVy0gDY=
+ dependencies:
+ path-is-inside "^1.0.1"
+
+is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+ integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
+
+is-regex@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
+ dependencies:
+ has "^1.0.1"
+
+is-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+ integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+ integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+ integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+
+is-symbol@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
+ integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
+ dependencies:
+ has-symbols "^1.0.0"
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+ integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
+
+isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
+
+jest-get-type@^22.1.0:
+ version "22.4.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4"
+ integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==
+
+jest-validate@^23.5.0:
+ version "23.6.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474"
+ integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==
+ dependencies:
+ chalk "^2.0.1"
+ jest-get-type "^22.1.0"
+ leven "^2.1.0"
+ pretty-format "^23.6.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+ integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
+
+js-yaml@^3.12.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
+ version "3.12.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
+ integrity sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+ integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+ integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
+
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+jsx-ast-utils@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
+ integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=
+ dependencies:
+ array-includes "^3.0.3"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+ integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+ integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
+ dependencies:
+ invert-kv "^1.0.0"
+
+leven@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+ integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
+
+levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+lint-staged@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz#dbc3ae2565366d8f20efb9f9799d076da64863f2"
+ integrity sha512-yfSkyJy7EuVsaoxtUSEhrD81spdJOe/gMTGea3XaV7HyoRhTb9Gdlp6/JppRZERvKSEYXP9bjcmq6CA5oL2lYQ==
+ dependencies:
+ "@iamstarkov/listr-update-renderer" "0.4.1"
+ chalk "^2.3.1"
+ commander "^2.14.1"
+ cosmiconfig "5.0.6"
+ debug "^3.1.0"
+ dedent "^0.7.0"
+ del "^3.0.0"
+ execa "^1.0.0"
+ find-parent-dir "^0.3.0"
+ g-status "^2.0.2"
+ is-glob "^4.0.0"
+ is-windows "^1.0.2"
+ jest-validate "^23.5.0"
+ listr "^0.14.2"
+ lodash "^4.17.5"
+ log-symbols "^2.2.0"
+ micromatch "^3.1.8"
+ npm-which "^3.0.1"
+ p-map "^1.1.1"
+ path-is-inside "^1.0.2"
+ pify "^3.0.0"
+ please-upgrade-node "^3.0.2"
+ staged-git-files "1.1.2"
+ string-argv "^0.0.2"
+ stringify-object "^3.2.2"
+
+listr-silent-renderer@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
+ integrity sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=
+
+listr-update-renderer@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
+ integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
+ dependencies:
+ chalk "^1.1.3"
+ cli-truncate "^0.2.1"
+ elegant-spinner "^1.0.1"
+ figures "^1.7.0"
+ indent-string "^3.0.0"
+ log-symbols "^1.0.2"
+ log-update "^2.3.0"
+ strip-ansi "^3.0.1"
+
+listr-verbose-renderer@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
+ integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
+ dependencies:
+ chalk "^2.4.1"
+ cli-cursor "^2.1.0"
+ date-fns "^1.27.2"
+ figures "^2.0.0"
+
+listr@^0.14.2:
+ version "0.14.3"
+ resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
+ integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+ dependencies:
+ "@samverschueren/stream-to-observable" "^0.3.0"
+ is-observable "^1.1.0"
+ is-promise "^2.1.0"
+ is-stream "^1.1.0"
+ listr-silent-renderer "^1.1.1"
+ listr-update-renderer "^0.5.0"
+ listr-verbose-renderer "^0.5.0"
+ p-map "^2.0.0"
+ rxjs "^6.3.3"
+
+load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
+
+lodash.merge@^4.6.0:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
+ integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
+
+lodash.unescape@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c"
+ integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=
+
+lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
+ version "4.17.11"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
+
+log-symbols@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
+ integrity sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=
+ dependencies:
+ chalk "^1.0.0"
+
+log-symbols@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
+ dependencies:
+ chalk "^2.0.1"
+
+log-update@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
+ integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+ dependencies:
+ ansi-escapes "^3.0.0"
+ cli-cursor "^2.0.0"
+ wrap-ansi "^3.0.1"
+
+loglevel-colored-level-prefix@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz#6a40218fdc7ae15fc76c3d0f3e676c465388603e"
+ integrity sha1-akAhj9x64V/HbD0PPmdsRlOIYD4=
+ dependencies:
+ chalk "^1.1.3"
+ loglevel "^1.4.1"
+
+loglevel@^1.4.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
+ integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
+
+loose-envify@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lru-cache@^4.0.1:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-plural@^4.1.1:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735"
+ integrity sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==
+ optionalDependencies:
+ minimist "^1.2.0"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+ integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
+
+map-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9"
+ integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk=
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
+ dependencies:
+ object-visit "^1.0.0"
+
+matcher@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2"
+ integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==
+ dependencies:
+ escape-string-regexp "^1.0.4"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
+ dependencies:
+ mimic-fn "^1.0.0"
+
+messageformat-parser@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-1.1.0.tgz#13ba2250a76bbde8e0fca0dbb3475f95c594a90a"
+ integrity sha512-Hwem6G3MsKDLS1FtBRGIs8T50P1Q00r3srS6QJePCFbad9fq0nYxwf3rnU2BreApRGhmpKMV7oZI06Sy1c9TPA==
+
+messageformat@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-1.1.1.tgz#ceaa2e6c86929d4807058275a7372b1bd963bdf6"
+ integrity sha512-Q0uXcDtF5pEZsVSyhzDOGgZZK6ykN79VY9CwU3Nv0gsqx62BjdJW0MT+63UkHQ4exe3HE33ZlxR2/YwoJarRTg==
+ dependencies:
+ glob "~7.0.6"
+ make-plural "^4.1.1"
+ messageformat-parser "^1.1.0"
+ nopt "~3.0.6"
+ reserved-words "^0.1.2"
+
+micromatch@^3.1.8:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+ integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+ integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
+
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+ integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+
+mixin-deep@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+ dependencies:
+ minimist "0.0.8"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+ integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+ integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+mute-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+ integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=
+
+nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+ integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+ integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
+
+nopt@~3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k=
+ dependencies:
+ abbrev "1"
+
+normalize-package-data@^2.3.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+npm-path@^2.0.2:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
+ integrity sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==
+ dependencies:
+ which "^1.2.10"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
+ dependencies:
+ path-key "^2.0.0"
+
+npm-which@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+ integrity sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=
+ dependencies:
+ commander "^2.9.0"
+ npm-path "^2.0.2"
+ which "^1.2.10"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+ integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-keys@^1.0.11, object-keys@^1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
+ integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
+ dependencies:
+ isobject "^3.0.0"
+
+object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+object.entries@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
+ integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.12.0"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+
+object.fromentries@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
+ integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.11.0"
+ function-bind "^1.1.1"
+ has "^1.0.1"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
+ dependencies:
+ isobject "^3.0.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+ dependencies:
+ wrappy "1"
+
+onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=
+ dependencies:
+ mimic-fn "^1.0.0"
+
+optionator@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.4"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ wordwrap "~1.0.0"
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+ integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+ integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+
+p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
+ dependencies:
+ p-try "^1.0.0"
+
+p-limit@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68"
+ integrity sha512-NhURkNcrVB+8hNfLuysU8enY5xn2KXphsHBaC2YmRNTZRc7RWusw6apSpdEj3jo4CMb6W9nrF6tTnsJsJeyu6g==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
+ dependencies:
+ p-limit "^1.1.0"
+
+p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+ dependencies:
+ p-limit "^2.0.0"
+
+p-map@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
+ integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==
+
+p-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50"
+ integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+ integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
+
+p-try@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
+ integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==
+
+parent-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5"
+ integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA==
+ dependencies:
+ callsites "^3.0.0"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
+ dependencies:
+ error-ex "^1.2.0"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+ integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+ integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-is-inside@^1.0.1, path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+ integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
+
+path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+ integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+
+path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
+path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=
+ dependencies:
+ pify "^2.0.0"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+ integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
+ dependencies:
+ find-up "^1.0.0"
+
+pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
+ dependencies:
+ find-up "^3.0.0"
+
+please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
+ integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==
+ dependencies:
+ semver-compare "^1.0.0"
+
+pluralize@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777"
+ integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+ integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
+
+prettier-eslint-cli@^4.7.1:
+ version "4.7.1"
+ resolved "https://registry.yarnpkg.com/prettier-eslint-cli/-/prettier-eslint-cli-4.7.1.tgz#3d103c494baa4e80b99ad53e2b9db7620101859f"
+ integrity sha512-hQbsGaEVz97oBBcKdsJ46khv0kOGkMyWrXzcFOXW6X8UuetZ/j0yDJkNJgUTVc6PVFbbzBXk+qgd5vos9qzXPQ==
+ dependencies:
+ arrify "^1.0.1"
+ babel-runtime "^6.23.0"
+ boolify "^1.0.0"
+ camelcase-keys "^4.1.0"
+ chalk "2.3.0"
+ common-tags "^1.4.0"
+ eslint "^4.5.0"
+ find-up "^2.1.0"
+ get-stdin "^5.0.1"
+ glob "^7.1.1"
+ ignore "^3.2.7"
+ indent-string "^3.1.0"
+ lodash.memoize "^4.1.2"
+ loglevel-colored-level-prefix "^1.0.0"
+ messageformat "^1.0.2"
+ prettier-eslint "^8.5.0"
+ rxjs "^5.3.0"
+ yargs "10.0.3"
+
+prettier-eslint@^8.5.0:
+ version "8.8.2"
+ resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-8.8.2.tgz#fcb29a48ab4524e234680797fe70e9d136ccaf0b"
+ integrity sha512-2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==
+ dependencies:
+ babel-runtime "^6.26.0"
+ common-tags "^1.4.0"
+ dlv "^1.1.0"
+ eslint "^4.0.0"
+ indent-string "^3.2.0"
+ lodash.merge "^4.6.0"
+ loglevel-colored-level-prefix "^1.0.0"
+ prettier "^1.7.0"
+ pretty-format "^23.0.1"
+ require-relative "^0.8.7"
+ typescript "^2.5.1"
+ typescript-eslint-parser "^16.0.0"
+ vue-eslint-parser "^2.0.2"
+
+prettier@^1.7.0:
+ version "1.15.3"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz#1feaac5bdd181237b54dbe65d874e02a1472786a"
+ integrity sha512-gAU9AGAPMaKb3NNSUUuhhFAS7SCO4ALTN4nRIn6PJ075Qd28Yn2Ig2ahEJWdJwJmlEBTUfC7mMUSFy8MwsOCfg==
+
+pretty-format@^23.0.1, pretty-format@^23.6.0:
+ version "23.6.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760"
+ integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==
+ dependencies:
+ ansi-regex "^3.0.0"
+ ansi-styles "^3.2.0"
+
+process-nextick-args@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
+ integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
+
+progress@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+prop-types@^15.6.2:
+ version "15.6.2"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102"
+ integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==
+ dependencies:
+ loose-envify "^1.3.1"
+ object-assign "^4.1.1"
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+ integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
+
+pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+punycode@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+quick-lru@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8"
+ integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=
+
+ramda@^0.26.1:
+ version "0.26.1"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
+ integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
+
+read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+read-pkg@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
+ integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc=
+ dependencies:
+ normalize-package-data "^2.3.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+
+readable-stream@^2.2.2:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
+ integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+ integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+regexpp@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
+ integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==
+
+regexpp@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+ integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+
+repeat-element@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
+
+repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+ integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+ integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
+
+require-relative@^0.8.7:
+ version "0.8.7"
+ resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
+ integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=
+
+require-uncached@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=
+ dependencies:
+ caller-path "^0.1.0"
+ resolve-from "^1.0.0"
+
+reserved-words@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz#00a0940f98cd501aeaaac316411d9adc52b31ab1"
+ integrity sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=
+
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+ integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=
+
+resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+ integrity sha1-six699nWiBvItuZTM17rywoYh0g=
+
+resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+ integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+ integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
+
+resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1, resolve@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
+ integrity sha512-TZNye00tI67lwYvzxCxHGjwTNlUV70io54/Ed4j6PscB8xVfuBJpRenI/o6dVk0cY0PYTY27AgCoGGxRnYuItQ==
+ dependencies:
+ path-parse "^1.0.6"
+
+restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368=
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+ integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
+
+rimraf@^2.2.8, rimraf@~2.6.2:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
+ dependencies:
+ glob "^7.1.3"
+
+run-async@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
+ integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA=
+ dependencies:
+ is-promise "^2.1.0"
+
+run-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
+ integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
+
+rx-lite-aggregates@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be"
+ integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=
+ dependencies:
+ rx-lite "*"
+
+rx-lite@*, rx-lite@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
+ integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=
+
+rxjs@^5.3.0:
+ version "5.5.12"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc"
+ integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==
+ dependencies:
+ symbol-observable "1.0.1"
+
+rxjs@^6.1.0, rxjs@^6.3.3:
+ version "6.3.3"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55"
+ integrity sha512-JTWmoY9tWCs7zvIk/CvRjhjGaOd+OVBM987mxFo+OW66cGpdKjZcpmc74ES1sB//7Kl/PAe8+wEakuhG4pcgOw==
+ dependencies:
+ tslib "^1.9.0"
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
+ dependencies:
+ ret "~0.1.10"
+
+"safer-buffer@>= 2.1.2 < 3":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver-compare@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
+ integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
+ integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
+
+semver@5.5.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+ integrity sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+set-value@^0.4.3:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE=
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.1"
+ to-object-path "^0.3.0"
+
+set-value@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+ integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+ integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+
+simple-git@^1.85.0:
+ version "1.107.0"
+ resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383"
+ integrity sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==
+ dependencies:
+ debug "^4.0.1"
+
+slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+ integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+
+slice-ansi@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+ integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=
+
+slice-ansi@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
+ integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+
+slice-ansi@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz#5373bdb8559b45676e8541c66916cdd6251612e7"
+ integrity sha512-4j2WTWjp3GsZ+AOagyzVbzp4vWGtZ0hEZ/gDY/uTvm6MTxUfTUIsnMIFb1bn8o0RuXiqUw15H1bue8f22Vw2oQ==
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+source-map-resolve@^0.5.0:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
+ integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+ dependencies:
+ atob "^2.1.1"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+ integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
+
+source-map@^0.5.0, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+
+spdx-correct@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
+ integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
+ integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
+ integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+staged-git-files@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b"
+ integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+string-argv@^0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+ integrity sha1-2sMECGkMIfPDYwo/86BYd73L1zY=
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+stringify-object@^3.2.2:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+ integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+ dependencies:
+ get-own-enumerable-property-symbols "^3.0.0"
+ is-obj "^1.0.1"
+ is-regexp "^1.0.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-ansi@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f"
+ integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==
+ dependencies:
+ ansi-regex "^4.0.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+ integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+
+strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+ integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+ integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
+
+supports-color@^4.0.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b"
+ integrity sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=
+ dependencies:
+ has-flag "^2.0.0"
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.0.0"
+
+symbol-observable@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
+ integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=
+
+symbol-observable@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+ integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
+
+table@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36"
+ integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==
+ dependencies:
+ ajv "^5.2.3"
+ ajv-keywords "^2.1.0"
+ chalk "^2.1.0"
+ lodash "^4.17.4"
+ slice-ansi "1.0.0"
+ string-width "^2.1.1"
+
+table@^5.0.2:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz#92030192f1b7b51b6eeab23ed416862e47b70837"
+ integrity sha512-NUjapYb/qd4PeFW03HnAuOJ7OMcBkJlqeClWxeNlQ0lXGSb52oZXGzkO0/I0ARegQ2eUT1g2VDJH0eUxDRcHmw==
+ dependencies:
+ ajv "^6.6.1"
+ lodash "^4.17.11"
+ slice-ansi "2.0.0"
+ string-width "^2.1.1"
+
+text-table@^0.2.0, text-table@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+ integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
+tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+ integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
+
+tslib@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
+ integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
+ dependencies:
+ prelude-ls "~1.1.2"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+
+typescript-eslint-parser@^16.0.0:
+ version "16.0.1"
+ resolved "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz#b40681c7043b222b9772748b700a000b241c031b"
+ integrity sha512-IKawLTu4A2xN3aN/cPLxvZ0bhxZHILGDKTZWvWNJ3sLNhJ3PjfMEDQmR2VMpdRPrmWOadgWXRwjLBzSA8AGsaQ==
+ dependencies:
+ lodash.unescape "4.0.1"
+ semver "5.5.0"
+
+typescript@^2.5.1:
+ version "2.9.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
+ integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==
+
+union-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^0.4.3"
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+uri-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ dependencies:
+ punycode "^2.1.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+ integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
+
+use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+ integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+vue-eslint-parser@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1"
+ integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw==
+ dependencies:
+ debug "^3.1.0"
+ eslint-scope "^3.7.1"
+ eslint-visitor-keys "^1.0.0"
+ espree "^3.5.2"
+ esquery "^1.0.0"
+ lodash "^4.17.4"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
+which@^1.2.10, which@^1.2.9:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
+ dependencies:
+ isexe "^2.0.0"
+
+wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+ integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrap-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
+ integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=
+ dependencies:
+ mkdirp "^0.5.1"
+
+y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+ integrity sha1-bRX7qITAhnnA136I53WegR4H+kE=
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+ integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
+
+yargs-parser@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@10.0.3:
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae"
+ integrity sha512-DqBpQ8NAUX4GyPP/ijDGHsJya4tYqLQrjPr95HNsr1YwL3+daCfvBwg7+gIC6IdJhR2kATh3hb61vjzMWEtjdw==
+ dependencies:
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^8.0.0"
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix
new file mode 100644
index 000000000000..9f4154b328b3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/yarn.nix
@@ -0,0 +1,3813 @@
+{ fetchurl, linkFarm, runCommandNoCC, gnutar }: rec {
+ offline_cache = linkFarm "offline" packages;
+ packages = [
+ {
+ name = "_babel_code_frame___code_frame_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz";
+ sha1 = "06e2ab19bdb535385559aabb5ba59729482800f8";
+ };
+ }
+ {
+ name = "_babel_generator___generator_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz";
+ sha1 = "18c816c70962640eab42fe8cae5f3947a5c65ccc";
+ };
+ }
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
+ sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
+ };
+ }
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
+ sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
+ };
+ }
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz";
+ sha1 = "3aae285c0311c2ab095d997b8c9a94cad547d813";
+ };
+ }
+ {
+ name = "_babel_highlight___highlight_7.0.0.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz";
+ sha1 = "f710c38c8d458e6dd9a201afb637fcb781ce99e4";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.3.tgz";
+ sha1 = "32f5df65744b70888d17872ec106b02434ba1489";
+ };
+ }
+ {
+ name = "_babel_template___template_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz";
+ sha1 = "005b3fdf0ed96e88041330379e0da9a708eb2907";
+ };
+ }
+ {
+ name = "_babel_traverse___traverse_7.2.3.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.2.3.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.3.tgz";
+ sha1 = "7ff50cefa9c7c0bd2d81231fdac122f3957748d8";
+ };
+ }
+ {
+ name = "_babel_types___types_7.2.2.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.2.2.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz";
+ sha1 = "44e10fc24e33af524488b716cdaee5360ea8ed1e";
+ };
+ }
+ {
+ name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
+ path = fetchurl {
+ name = "_iamstarkov_listr_update_renderer___listr_update_renderer_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/@iamstarkov/listr-update-renderer/-/listr-update-renderer-0.4.1.tgz";
+ sha1 = "d7c48092a2dcf90fd672b6c8b458649cb350c77e";
+ };
+ }
+ {
+ name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
+ path = fetchurl {
+ name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
+ sha1 = "ecdf48d532c58ea477acfcab80348424f8d0662f";
+ };
+ }
+ {
+ name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
+ path = fetchurl {
+ name = "_yarnpkg_lockfile___lockfile_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz";
+ sha1 = "e77a97fbd345b76d83245edcd17d393b1b41fb31";
+ };
+ }
+ {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ path = fetchurl {
+ name = "abbrev___abbrev_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
+ sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+ };
+ }
+ {
+ name = "acorn_jsx___acorn_jsx_3.0.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz";
+ sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
+ };
+ }
+ {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ path = fetchurl {
+ name = "acorn_jsx___acorn_jsx_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz";
+ sha1 = "32a064fd925429216a09b141102bfdd185fae40e";
+ };
+ }
+ {
+ name = "acorn___acorn_3.3.0.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz";
+ sha1 = "45e37fb39e8da3f25baee3ff5369e2bb5f22017a";
+ };
+ }
+ {
+ name = "acorn___acorn_5.7.3.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_5.7.3.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
+ sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+ };
+ }
+ {
+ name = "acorn___acorn_6.0.5.tgz";
+ path = fetchurl {
+ name = "acorn___acorn_6.0.5.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-6.0.5.tgz";
+ sha1 = "81730c0815f3f3b34d8efa95cb7430965f4d887a";
+ };
+ }
+ {
+ name = "ajv_keywords___ajv_keywords_2.1.1.tgz";
+ path = fetchurl {
+ name = "ajv_keywords___ajv_keywords_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz";
+ sha1 = "617997fc5f60576894c435f940d819e135b80762";
+ };
+ }
+ {
+ name = "ajv___ajv_5.5.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_5.5.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz";
+ sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
+ };
+ }
+ {
+ name = "ajv___ajv_6.6.2.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.6.2.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz";
+ sha1 = "caceccf474bf3fc3ce3b147443711a24063cc30d";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz";
+ sha1 = "f73207bb81207d75fd6c83f125af26eea378ca30";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+ sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
+ sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+ };
+ }
+ {
+ name = "ansi_regex___ansi_regex_4.0.0.tgz";
+ path = fetchurl {
+ name = "ansi_regex___ansi_regex_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz";
+ sha1 = "70de791edf021404c3fd615aa89118ae0432e5a9";
+ };
+ }
+ {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_2.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+ sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+ };
+ }
+ {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ path = fetchurl {
+ name = "ansi_styles___ansi_styles_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+ sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+ };
+ }
+ {
+ name = "any_observable___any_observable_0.3.0.tgz";
+ path = fetchurl {
+ name = "any_observable___any_observable_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz";
+ sha1 = "af933475e5806a67d0d7df090dd5e8bef65d119b";
+ };
+ }
+ {
+ name = "argparse___argparse_1.0.10.tgz";
+ path = fetchurl {
+ name = "argparse___argparse_1.0.10.tgz";
+ url = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+ sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+ };
+ }
+ {
+ name = "aria_query___aria_query_3.0.0.tgz";
+ path = fetchurl {
+ name = "aria_query___aria_query_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz";
+ sha1 = "65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc";
+ };
+ }
+ {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ path = fetchurl {
+ name = "arr_diff___arr_diff_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
+ sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+ };
+ }
+ {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ path = fetchurl {
+ name = "arr_flatten___arr_flatten_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
+ sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+ };
+ }
+ {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ path = fetchurl {
+ name = "arr_union___arr_union_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
+ sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+ };
+ }
+ {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ path = fetchurl {
+ name = "array_includes___array_includes_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
+ sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
+ };
+ }
+ {
+ name = "array_union___array_union_1.0.2.tgz";
+ path = fetchurl {
+ name = "array_union___array_union_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
+ sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
+ };
+ }
+ {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ path = fetchurl {
+ name = "array_uniq___array_uniq_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
+ sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+ };
+ }
+ {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ path = fetchurl {
+ name = "array_unique___array_unique_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
+ sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+ };
+ }
+ {
+ name = "arrify___arrify_1.0.1.tgz";
+ path = fetchurl {
+ name = "arrify___arrify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz";
+ sha1 = "898508da2226f380df904728456849c1501a4b0d";
+ };
+ }
+ {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "assign_symbols___assign_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
+ sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+ };
+ }
+ {
+ name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+ path = fetchurl {
+ name = "ast_types_flow___ast_types_flow_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz";
+ sha1 = "f70b735c6bca1a5c9c22d982c3e39e7feba3bdad";
+ };
+ }
+ {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "astral_regex___astral_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
+ sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
+ };
+ }
+ {
+ name = "atob___atob_2.1.2.tgz";
+ path = fetchurl {
+ name = "atob___atob_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
+ sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+ };
+ }
+ {
+ name = "axobject_query___axobject_query_2.0.2.tgz";
+ path = fetchurl {
+ name = "axobject_query___axobject_query_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz";
+ sha1 = "ea187abe5b9002b377f925d8bf7d1c561adf38f9";
+ };
+ }
+ {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+ sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+ };
+ }
+ {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.0.1.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz";
+ sha1 = "919681dc099614cd7d31d45c8908695092a1faed";
+ };
+ }
+ {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ path = fetchurl {
+ name = "babel_runtime___babel_runtime_6.26.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
+ sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+ };
+ }
+ {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ path = fetchurl {
+ name = "balanced_match___balanced_match_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+ sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+ };
+ }
+ {
+ name = "base___base_0.11.2.tgz";
+ path = fetchurl {
+ name = "base___base_0.11.2.tgz";
+ url = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
+ sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+ };
+ }
+ {
+ name = "boolify___boolify_1.0.1.tgz";
+ path = fetchurl {
+ name = "boolify___boolify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/boolify/-/boolify-1.0.1.tgz";
+ sha1 = "b5c09e17cacd113d11b7bb3ed384cc012994d86b";
+ };
+ }
+ {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ path = fetchurl {
+ name = "brace_expansion___brace_expansion_1.1.11.tgz";
+ url = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
+ sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+ };
+ }
+ {
+ name = "braces___braces_2.3.2.tgz";
+ path = fetchurl {
+ name = "braces___braces_2.3.2.tgz";
+ url = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
+ sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+ };
+ }
+ {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ path = fetchurl {
+ name = "buffer_from___buffer_from_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
+ sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+ };
+ }
+ {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ path = fetchurl {
+ name = "builtin_modules___builtin_modules_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
+ sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+ };
+ }
+ {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ path = fetchurl {
+ name = "cache_base___cache_base_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
+ sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+ };
+ }
+ {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_callsite___caller_callsite_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
+ sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+ };
+ }
+ {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz";
+ sha1 = "94085ef63581ecd3daa92444a8fe94e82577751f";
+ };
+ }
+ {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "caller_path___caller_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
+ sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+ };
+ }
+ {
+ name = "callsites___callsites_0.2.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz";
+ sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
+ };
+ }
+ {
+ name = "callsites___callsites_2.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
+ sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+ };
+ }
+ {
+ name = "callsites___callsites_3.0.0.tgz";
+ path = fetchurl {
+ name = "callsites___callsites_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz";
+ sha1 = "fb7eb569b72ad7a45812f93fd9430a3e410b3dd3";
+ };
+ }
+ {
+ name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+ path = fetchurl {
+ name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz";
+ sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
+ };
+ }
+ {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ path = fetchurl {
+ name = "camelcase___camelcase_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
+ sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+ };
+ }
+ {
+ name = "chalk___chalk_2.3.0.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz";
+ sha1 = "b5ea48efc9c1793dccc9b4767c93914d3f2d52ba";
+ };
+ }
+ {
+ name = "chalk___chalk_1.1.3.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+ sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+ };
+ }
+ {
+ name = "chalk___chalk_2.4.1.tgz";
+ path = fetchurl {
+ name = "chalk___chalk_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
+ sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
+ };
+ }
+ {
+ name = "chardet___chardet_0.4.2.tgz";
+ path = fetchurl {
+ name = "chardet___chardet_0.4.2.tgz";
+ url = "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz";
+ sha1 = "b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2";
+ };
+ }
+ {
+ name = "chardet___chardet_0.7.0.tgz";
+ path = fetchurl {
+ name = "chardet___chardet_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
+ sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
+ };
+ }
+ {
+ name = "ci_info___ci_info_2.0.0.tgz";
+ path = fetchurl {
+ name = "ci_info___ci_info_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
+ sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
+ };
+ }
+ {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ path = fetchurl {
+ name = "circular_json___circular_json_0.3.3.tgz";
+ url = "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz";
+ sha1 = "815c99ea84f6809529d2f45791bdf82711352d66";
+ };
+ }
+ {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ path = fetchurl {
+ name = "class_utils___class_utils_0.3.6.tgz";
+ url = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
+ sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+ };
+ }
+ {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ path = fetchurl {
+ name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+ sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ };
+ }
+ {
+ name = "cli_truncate___cli_truncate_0.2.1.tgz";
+ path = fetchurl {
+ name = "cli_truncate___cli_truncate_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz";
+ sha1 = "9f15cfbb0705005369216c626ac7d05ab90dd574";
+ };
+ }
+ {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ path = fetchurl {
+ name = "cli_width___cli_width_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
+ sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ };
+ }
+ {
+ name = "cliui___cliui_3.2.0.tgz";
+ path = fetchurl {
+ name = "cliui___cliui_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz";
+ sha1 = "120601537a916d29940f934da3b48d585a39213d";
+ };
+ }
+ {
+ name = "co___co_4.6.0.tgz";
+ path = fetchurl {
+ name = "co___co_4.6.0.tgz";
+ url = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+ sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+ };
+ }
+ {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ path = fetchurl {
+ name = "code_point_at___code_point_at_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+ sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+ };
+ }
+ {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "collection_visit___collection_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
+ sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+ };
+ }
+ {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ path = fetchurl {
+ name = "color_convert___color_convert_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
+ sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+ };
+ }
+ {
+ name = "color_name___color_name_1.1.3.tgz";
+ path = fetchurl {
+ name = "color_name___color_name_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
+ sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+ };
+ }
+ {
+ name = "commander___commander_2.19.0.tgz";
+ path = fetchurl {
+ name = "commander___commander_2.19.0.tgz";
+ url = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
+ sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
+ };
+ }
+ {
+ name = "common_tags___common_tags_1.8.0.tgz";
+ path = fetchurl {
+ name = "common_tags___common_tags_1.8.0.tgz";
+ url = "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz";
+ sha1 = "8e3153e542d4a39e9b10554434afaaf98956a937";
+ };
+ }
+ {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ path = fetchurl {
+ name = "component_emitter___component_emitter_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz";
+ sha1 = "137918d6d78283f7df7a6b7c5a63e140e69425e6";
+ };
+ }
+ {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ path = fetchurl {
+ name = "concat_map___concat_map_0.0.1.tgz";
+ url = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
+ sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+ };
+ }
+ {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ path = fetchurl {
+ name = "concat_stream___concat_stream_1.6.2.tgz";
+ url = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
+ sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+ };
+ }
+ {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+ sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+ };
+ }
+ {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ path = fetchurl {
+ name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+ sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+ };
+ }
+ {
+ name = "core_js___core_js_2.6.1.tgz";
+ path = fetchurl {
+ name = "core_js___core_js_2.6.1.tgz";
+ url = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz";
+ sha1 = "87416ae817de957a3f249b3b5ca475d4aaed6042";
+ };
+ }
+ {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ path = fetchurl {
+ name = "core_util_is___core_util_is_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+ sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+ };
+ }
+ {
+ name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.0.6.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz";
+ sha1 = "dca6cf680a0bd03589aff684700858c81abeeb39";
+ };
+ }
+ {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ path = fetchurl {
+ name = "cosmiconfig___cosmiconfig_5.0.7.tgz";
+ url = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz";
+ sha1 = "39826b292ee0d78eda137dfa3173bd1c21a43b04";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz";
+ sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+ };
+ }
+ {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_6.0.5.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
+ sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
+ };
+ }
+ {
+ name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
+ path = fetchurl {
+ name = "damerau_levenshtein___damerau_levenshtein_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz";
+ sha1 = "03191c432cb6eea168bb77f3a55ffdccb8978514";
+ };
+ }
+ {
+ name = "date_fns___date_fns_1.30.1.tgz";
+ path = fetchurl {
+ name = "date_fns___date_fns_1.30.1.tgz";
+ url = "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz";
+ sha1 = "2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c";
+ };
+ }
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
+ {
+ name = "debug___debug_3.2.6.tgz";
+ path = fetchurl {
+ name = "debug___debug_3.2.6.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
+ sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
+ };
+ }
+ {
+ name = "debug___debug_4.1.1.tgz";
+ path = fetchurl {
+ name = "debug___debug_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
+ sha1 = "3b72260255109c6b589cee050f1d516139664791";
+ };
+ }
+ {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ path = fetchurl {
+ name = "decamelize___decamelize_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
+ sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+ };
+ }
+ {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ path = fetchurl {
+ name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+ sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+ };
+ }
+ {
+ name = "dedent___dedent_0.7.0.tgz";
+ path = fetchurl {
+ name = "dedent___dedent_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz";
+ sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+ };
+ }
+ {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ path = fetchurl {
+ name = "deep_equal___deep_equal_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
+ sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+ };
+ }
+ {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ path = fetchurl {
+ name = "deep_is___deep_is_0.1.3.tgz";
+ url = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
+ sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+ };
+ }
+ {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ path = fetchurl {
+ name = "define_properties___define_properties_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
+ sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+ };
+ }
+ {
+ name = "define_property___define_property_0.2.5.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_0.2.5.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
+ sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+ };
+ }
+ {
+ name = "define_property___define_property_1.0.0.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
+ sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+ };
+ }
+ {
+ name = "define_property___define_property_2.0.2.tgz";
+ path = fetchurl {
+ name = "define_property___define_property_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
+ sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+ };
+ }
+ {
+ name = "del___del_3.0.0.tgz";
+ path = fetchurl {
+ name = "del___del_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz";
+ sha1 = "53ecf699ffcbcb39637691ab13baf160819766e5";
+ };
+ }
+ {
+ name = "dlv___dlv_1.1.2.tgz";
+ path = fetchurl {
+ name = "dlv___dlv_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/dlv/-/dlv-1.1.2.tgz";
+ sha1 = "270f6737b30d25b6657a7e962c784403f85137e5";
+ };
+ }
+ {
+ name = "docopt___docopt_0.6.2.tgz";
+ path = fetchurl {
+ name = "docopt___docopt_0.6.2.tgz";
+ url = "https://registry.yarnpkg.com/docopt/-/docopt-0.6.2.tgz";
+ sha1 = "b28e9e2220da5ec49f7ea5bb24a47787405eeb11";
+ };
+ }
+ {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+ sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+ };
+ }
+ {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+ sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
+ };
+ }
+ {
+ name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+ path = fetchurl {
+ name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
+ sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
+ };
+ }
+ {
+ name = "emoji_regex___emoji_regex_6.5.1.tgz";
+ path = fetchurl {
+ name = "emoji_regex___emoji_regex_6.5.1.tgz";
+ url = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz";
+ sha1 = "9baea929b155565c11ea41c6626eaa65cef992c2";
+ };
+ }
+ {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ path = fetchurl {
+ name = "end_of_stream___end_of_stream_1.4.1.tgz";
+ url = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz";
+ sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
+ };
+ }
+ {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ path = fetchurl {
+ name = "error_ex___error_ex_1.3.2.tgz";
+ url = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
+ sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
+ };
+ }
+ {
+ name = "es_abstract___es_abstract_1.13.0.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
+ sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
+ };
+ }
+ {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ path = fetchurl {
+ name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
+ sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
+ };
+ }
+ {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ path = fetchurl {
+ name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+ sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+ };
+ }
+ {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_airbnb_base___eslint_config_airbnb_base_13.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz";
+ sha1 = "b5a1b480b80dfad16433d6c4ad84e6605052c05c";
+ };
+ }
+ {
+ name = "eslint_config_airbnb___eslint_config_airbnb_17.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_airbnb___eslint_config_airbnb_17.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz";
+ sha1 = "3964ed4bc198240315ff52030bf8636f42bc4732";
+ };
+ }
+ {
+ name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_prettier___eslint_config_prettier_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-3.3.0.tgz";
+ sha1 = "41afc8d3b852e757f06274ed6c44ca16f939a57d";
+ };
+ }
+ {
+ name = "eslint_config_standard___eslint_config_standard_12.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_standard___eslint_config_standard_12.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz";
+ sha1 = "638b4c65db0bd5a41319f96bba1f15ddad2107d9";
+ };
+ }
+ {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz";
+ sha1 = "58f15fb839b8d0576ca980413476aab2472db66a";
+ };
+ }
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz";
+ sha1 = "b270362cd88b1a48ad308976ce7fa54e98411746";
+ };
+ }
+ {
+ name = "eslint_plugin_es___eslint_plugin_es_1.4.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_es___eslint_plugin_es_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz";
+ sha1 = "475f65bb20c993fc10e8c8fe77d1d60068072da6";
+ };
+ }
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.14.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz";
+ sha1 = "6b17626d2e3e6ad52cfce8807a845d15e22111a8";
+ };
+ }
+ {
+ name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz";
+ sha1 = "69bca4890b36dcf0fe16dd2129d2d88b98f33f88";
+ };
+ }
+ {
+ name = "eslint_plugin_node___eslint_plugin_node_8.0.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_node___eslint_plugin_node_8.0.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz";
+ sha1 = "55ae3560022863d141fa7a11799532340a685964";
+ };
+ }
+ {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_promise___eslint_plugin_promise_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz";
+ sha1 = "2d074b653f35a23d1ba89d8e976a985117d1c6a2";
+ };
+ }
+ {
+ name = "eslint_plugin_react___eslint_plugin_react_7.12.3.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react___eslint_plugin_react_7.12.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.3.tgz";
+ sha1 = "b9ca4cd7cd3f5d927db418a1950366a12d4568fd";
+ };
+ }
+ {
+ name = "eslint_plugin_standard___eslint_plugin_standard_4.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_standard___eslint_plugin_standard_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz";
+ sha1 = "f845b45109c99cd90e77796940a344546c8f6b5c";
+ };
+ }
+ {
+ name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
+ path = fetchurl {
+ name = "eslint_restricted_globals___eslint_restricted_globals_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz";
+ sha1 = "35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_3.7.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz";
+ sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_3.7.3.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_3.7.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz";
+ sha1 = "bb507200d3d17f60247636160b4826284b108535";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_4.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz";
+ sha1 = "50bf3071e9338bcdc43331794a0cb533f0136172";
+ };
+ }
+ {
+ name = "eslint_utils___eslint_utils_1.3.1.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz";
+ sha1 = "9a851ba89ee7c460346f97cf8939c7298827e512";
+ };
+ }
+ {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+ sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
+ };
+ }
+ {
+ name = "eslint___eslint_4.19.1.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_4.19.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz";
+ sha1 = "32d1d653e1d90408854bfb296f076ec7e186a300";
+ };
+ }
+ {
+ name = "eslint___eslint_5.12.0.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_5.12.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-5.12.0.tgz";
+ sha1 = "fab3b908f60c52671fb14e996a450b96c743c859";
+ };
+ }
+ {
+ name = "espree___espree_3.5.4.tgz";
+ path = fetchurl {
+ name = "espree___espree_3.5.4.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz";
+ sha1 = "b0f447187c8a8bed944b815a660bddf5deb5d1a7";
+ };
+ }
+ {
+ name = "espree___espree_5.0.0.tgz";
+ path = fetchurl {
+ name = "espree___espree_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz";
+ sha1 = "fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c";
+ };
+ }
+ {
+ name = "esprima___esprima_4.0.1.tgz";
+ path = fetchurl {
+ name = "esprima___esprima_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
+ sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+ };
+ }
+ {
+ name = "esquery___esquery_1.0.1.tgz";
+ path = fetchurl {
+ name = "esquery___esquery_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
+ sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
+ };
+ }
+ {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ path = fetchurl {
+ name = "esrecurse___esrecurse_4.2.1.tgz";
+ url = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
+ sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+ };
+ }
+ {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_4.2.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
+ sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
+ };
+ }
+ {
+ name = "esutils___esutils_2.0.2.tgz";
+ path = fetchurl {
+ name = "esutils___esutils_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
+ sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
+ };
+ }
+ {
+ name = "execa___execa_0.7.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_0.7.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz";
+ sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+ };
+ }
+ {
+ name = "execa___execa_1.0.0.tgz";
+ path = fetchurl {
+ name = "execa___execa_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
+ sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
+ };
+ }
+ {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ path = fetchurl {
+ name = "expand_brackets___expand_brackets_2.1.4.tgz";
+ url = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
+ sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
+ sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+ };
+ }
+ {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ path = fetchurl {
+ name = "extend_shallow___extend_shallow_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
+ sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+ };
+ }
+ {
+ name = "external_editor___external_editor_2.2.0.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz";
+ sha1 = "045511cfd8d133f3846673d1047c154e214ad3d5";
+ };
+ }
+ {
+ name = "external_editor___external_editor_3.0.3.tgz";
+ path = fetchurl {
+ name = "external_editor___external_editor_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz";
+ sha1 = "5866db29a97826dbe4bf3afd24070ead9ea43a27";
+ };
+ }
+ {
+ name = "extglob___extglob_2.0.4.tgz";
+ path = fetchurl {
+ name = "extglob___extglob_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
+ sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+ };
+ }
+ {
+ name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz";
+ sha1 = "c053477817c86b51daa853c81e059b733d023614";
+ };
+ }
+ {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ path = fetchurl {
+ name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
+ sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
+ };
+ }
+ {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ path = fetchurl {
+ name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+ sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+ };
+ }
+ {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ path = fetchurl {
+ name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+ sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+ };
+ }
+ {
+ name = "figures___figures_1.7.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_1.7.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
+ sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+ };
+ }
+ {
+ name = "figures___figures_2.0.0.tgz";
+ path = fetchurl {
+ name = "figures___figures_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+ sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ };
+ }
+ {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ path = fetchurl {
+ name = "file_entry_cache___file_entry_cache_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz";
+ sha1 = "c392990c3e684783d838b8c84a45d8a048458361";
+ };
+ }
+ {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ path = fetchurl {
+ name = "fill_range___fill_range_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
+ sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+ };
+ }
+ {
+ name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
+ path = fetchurl {
+ name = "find_parent_dir___find_parent_dir_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz";
+ sha1 = "33c44b429ab2b2f0646299c5f9f718f376ff8d54";
+ };
+ }
+ {
+ name = "find_up___find_up_1.1.2.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz";
+ sha1 = "6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f";
+ };
+ }
+ {
+ name = "find_up___find_up_2.1.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz";
+ sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+ };
+ }
+ {
+ name = "find_up___find_up_3.0.0.tgz";
+ path = fetchurl {
+ name = "find_up___find_up_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
+ sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
+ };
+ }
+ {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ path = fetchurl {
+ name = "flat_cache___flat_cache_1.3.4.tgz";
+ url = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz";
+ sha1 = "2c2ef77525cc2929007dfffa1dd314aa9c9dee6f";
+ };
+ }
+ {
+ name = "for_in___for_in_1.0.2.tgz";
+ path = fetchurl {
+ name = "for_in___for_in_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
+ sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+ };
+ }
+ {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ path = fetchurl {
+ name = "fragment_cache___fragment_cache_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
+ sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+ };
+ }
+ {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ path = fetchurl {
+ name = "fs.realpath___fs.realpath_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
+ sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+ };
+ }
+ {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ path = fetchurl {
+ name = "function_bind___function_bind_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
+ sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+ };
+ }
+ {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ path = fetchurl {
+ name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+ sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+ };
+ }
+ {
+ name = "g_status___g_status_2.0.2.tgz";
+ path = fetchurl {
+ name = "g_status___g_status_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz";
+ sha1 = "270fd32119e8fc9496f066fe5fe88e0a6bc78b97";
+ };
+ }
+ {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ path = fetchurl {
+ name = "get_caller_file___get_caller_file_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
+ sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+ };
+ }
+ {
+ name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_own_enumerable_property_symbols___get_own_enumerable_property_symbols_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz";
+ sha1 = "b877b49a5c16aefac3655f2ed2ea5b684df8d203";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_5.0.1.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_5.0.1.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz";
+ sha1 = "122e161591e21ff4c52530305693f20e6393a398";
+ };
+ }
+ {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ path = fetchurl {
+ name = "get_stdin___get_stdin_6.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
+ sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
+ };
+ }
+ {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz";
+ sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+ };
+ }
+ {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ path = fetchurl {
+ name = "get_stream___get_stream_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
+ sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
+ };
+ }
+ {
+ name = "get_value___get_value_2.0.6.tgz";
+ path = fetchurl {
+ name = "get_value___get_value_2.0.6.tgz";
+ url = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
+ sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+ };
+ }
+ {
+ name = "glob___glob_7.1.3.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.1.3.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz";
+ sha1 = "3960832d3f1574108342dafd3a67b332c0969df1";
+ };
+ }
+ {
+ name = "glob___glob_7.0.6.tgz";
+ path = fetchurl {
+ name = "glob___glob_7.0.6.tgz";
+ url = "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz";
+ sha1 = "211bafaf49e525b8cd93260d14ab136152b3f57a";
+ };
+ }
+ {
+ name = "globals___globals_11.9.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_11.9.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz";
+ sha1 = "bde236808e987f290768a93d065060d78e6ab249";
+ };
+ }
+ {
+ name = "globby___globby_6.1.0.tgz";
+ path = fetchurl {
+ name = "globby___globby_6.1.0.tgz";
+ url = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
+ sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
+ };
+ }
+ {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ path = fetchurl {
+ name = "graceful_fs___graceful_fs_4.1.15.tgz";
+ url = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz";
+ sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
+ };
+ }
+ {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_ansi___has_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+ sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+ };
+ }
+ {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz";
+ sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+ };
+ }
+ {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ path = fetchurl {
+ name = "has_flag___has_flag_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
+ sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+ };
+ }
+ {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_symbols___has_symbols_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
+ sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
+ };
+ }
+ {
+ name = "has_value___has_value_0.3.1.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
+ sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+ };
+ }
+ {
+ name = "has_value___has_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_value___has_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
+ sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+ };
+ }
+ {
+ name = "has_values___has_values_0.1.4.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
+ sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+ };
+ }
+ {
+ name = "has_values___has_values_1.0.0.tgz";
+ path = fetchurl {
+ name = "has_values___has_values_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
+ sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+ };
+ }
+ {
+ name = "has___has_1.0.3.tgz";
+ path = fetchurl {
+ name = "has___has_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
+ sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+ };
+ }
+ {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ path = fetchurl {
+ name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
+ url = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
+ sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
+ };
+ }
+ {
+ name = "husky___husky_1.3.1.tgz";
+ path = fetchurl {
+ name = "husky___husky_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz";
+ sha1 = "26823e399300388ca2afff11cfa8a86b0033fae0";
+ };
+ }
+ {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ path = fetchurl {
+ name = "iconv_lite___iconv_lite_0.4.24.tgz";
+ url = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+ sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+ };
+ }
+ {
+ name = "ignore___ignore_3.3.10.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_3.3.10.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz";
+ sha1 = "0a97fb876986e8081c631160f8f9f389157f0043";
+ };
+ }
+ {
+ name = "ignore___ignore_4.0.6.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_4.0.6.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
+ sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+ };
+ }
+ {
+ name = "ignore___ignore_5.0.4.tgz";
+ path = fetchurl {
+ name = "ignore___ignore_5.0.4.tgz";
+ url = "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz";
+ sha1 = "33168af4a21e99b00c5d41cbadb6a6cb49903a45";
+ };
+ }
+ {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
+ sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+ };
+ }
+ {
+ name = "import_fresh___import_fresh_3.0.0.tgz";
+ path = fetchurl {
+ name = "import_fresh___import_fresh_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz";
+ sha1 = "a3d897f420cab0e671236897f75bc14b4885c390";
+ };
+ }
+ {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ path = fetchurl {
+ name = "imurmurhash___imurmurhash_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
+ sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+ };
+ }
+ {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ path = fetchurl {
+ name = "indent_string___indent_string_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
+ sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
+ };
+ }
+ {
+ name = "inflight___inflight_1.0.6.tgz";
+ path = fetchurl {
+ name = "inflight___inflight_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
+ sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+ };
+ }
+ {
+ name = "inherits___inherits_2.0.3.tgz";
+ path = fetchurl {
+ name = "inherits___inherits_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+ sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+ };
+ }
+ {
+ name = "inquirer___inquirer_3.3.0.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz";
+ sha1 = "9dd2f2ad765dcab1ff0443b491442a20ba227dc9";
+ };
+ }
+ {
+ name = "inquirer___inquirer_6.2.1.tgz";
+ path = fetchurl {
+ name = "inquirer___inquirer_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz";
+ sha1 = "9943fc4882161bdb0b0c9276769c75b32dbfcd52";
+ };
+ }
+ {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ path = fetchurl {
+ name = "invert_kv___invert_kv_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz";
+ sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+ sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+ };
+ }
+ {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+ sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+ };
+ }
+ {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ path = fetchurl {
+ name = "is_arrayish___is_arrayish_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
+ sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+ };
+ }
+ {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ path = fetchurl {
+ name = "is_buffer___is_buffer_1.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
+ sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
+ };
+ }
+ {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_builtin_module___is_builtin_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz";
+ sha1 = "540572d34f7ac3119f8f76c30cbc1b1e037affbe";
+ };
+ }
+ {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
+ sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
+ };
+ }
+ {
+ name = "is_ci___is_ci_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_ci___is_ci_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
+ sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+ sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+ };
+ }
+ {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+ sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
+ };
+ }
+ {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_date_object___is_date_object_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
+ sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_0.1.6.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
+ sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+ };
+ }
+ {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_descriptor___is_descriptor_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
+ sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+ };
+ }
+ {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ path = fetchurl {
+ name = "is_directory___is_directory_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
+ sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
+ sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+ };
+ }
+ {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_extendable___is_extendable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
+ sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+ };
+ }
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+ sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+ };
+ }
+ {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ path = fetchurl {
+ name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+ sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+ };
+ }
+ {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz";
+ sha1 = "9521c76845cc2610a85203ddf080a958c2ffabc0";
+ };
+ }
+ {
+ name = "is_number___is_number_3.0.0.tgz";
+ path = fetchurl {
+ name = "is_number___is_number_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
+ sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+ };
+ }
+ {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_obj___is_obj_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
+ sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+ };
+ }
+ {
+ name = "is_observable___is_observable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_observable___is_observable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz";
+ sha1 = "b3e986c8f44de950867cab5403f5a3465005975e";
+ };
+ }
+ {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_path_cwd___is_path_cwd_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz";
+ sha1 = "d225ec23132e89edd38fda767472e62e65f1106d";
+ };
+ }
+ {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_in_cwd___is_path_in_cwd_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz";
+ sha1 = "5ac48b345ef675339bd6c7a48a912110b241cf52";
+ };
+ }
+ {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ path = fetchurl {
+ name = "is_path_inside___is_path_inside_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz";
+ sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+ };
+ }
+ {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ path = fetchurl {
+ name = "is_plain_object___is_plain_object_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
+ sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+ };
+ }
+ {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ path = fetchurl {
+ name = "is_promise___is_promise_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
+ sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+ };
+ }
+ {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.0.4.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
+ sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+ };
+ }
+ {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ path = fetchurl {
+ name = "is_regexp___is_regexp_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz";
+ sha1 = "fd2d883545c46bac5a633e7b9a09e87fa2cb5069";
+ };
+ }
+ {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_resolvable___is_resolvable_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
+ sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
+ };
+ }
+ {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_stream___is_stream_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+ sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+ };
+ }
+ {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_symbol___is_symbol_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
+ sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
+ };
+ }
+ {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ path = fetchurl {
+ name = "is_windows___is_windows_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
+ sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+ };
+ }
+ {
+ name = "isarray___isarray_1.0.0.tgz";
+ path = fetchurl {
+ name = "isarray___isarray_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+ sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+ };
+ }
+ {
+ name = "isexe___isexe_2.0.0.tgz";
+ path = fetchurl {
+ name = "isexe___isexe_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+ sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+ };
+ }
+ {
+ name = "isobject___isobject_2.1.0.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
+ sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+ };
+ }
+ {
+ name = "isobject___isobject_3.0.1.tgz";
+ path = fetchurl {
+ name = "isobject___isobject_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
+ sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+ };
+ }
+ {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ path = fetchurl {
+ name = "jest_get_type___jest_get_type_22.4.3.tgz";
+ url = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz";
+ sha1 = "e3a8504d8479342dd4420236b322869f18900ce4";
+ };
+ }
+ {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ path = fetchurl {
+ name = "jest_validate___jest_validate_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz";
+ sha1 = "36761f99d1ed33fcd425b4e4c5595d62b6597474";
+ };
+ }
+ {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
+ sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+ };
+ }
+ {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ path = fetchurl {
+ name = "js_tokens___js_tokens_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
+ sha1 = "9866df395102130e38f7f996bceb65443209c25b";
+ };
+ }
+ {
+ name = "js_yaml___js_yaml_3.12.1.tgz";
+ path = fetchurl {
+ name = "js_yaml___js_yaml_3.12.1.tgz";
+ url = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz";
+ sha1 = "295c8632a18a23e054cf5c9d3cecafe678167600";
+ };
+ }
+ {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+ sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+ };
+ }
+ {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ path = fetchurl {
+ name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+ sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+ };
+ }
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+ sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+ };
+ }
+ {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ path = fetchurl {
+ name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+ sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+ };
+ }
+ {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ path = fetchurl {
+ name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+ sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+ };
+ }
+ {
+ name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
+ path = fetchurl {
+ name = "jsx_ast_utils___jsx_ast_utils_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz";
+ sha1 = "e801b1b39985e20fffc87b40e3748080e2dcac7f";
+ };
+ }
+ {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_3.2.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
+ sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+ };
+ }
+ {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
+ sha1 = "20813df3d712928b207378691a45066fae72dd57";
+ };
+ }
+ {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
+ sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+ };
+ }
+ {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ path = fetchurl {
+ name = "kind_of___kind_of_6.0.2.tgz";
+ url = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz";
+ sha1 = "01146b36a6218e64e58f3a8d66de5d7fc6f6d051";
+ };
+ }
+ {
+ name = "lcid___lcid_1.0.0.tgz";
+ path = fetchurl {
+ name = "lcid___lcid_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz";
+ sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
+ };
+ }
+ {
+ name = "leven___leven_2.1.0.tgz";
+ path = fetchurl {
+ name = "leven___leven_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
+ sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+ };
+ }
+ {
+ name = "levn___levn_0.3.0.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
+ sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+ };
+ }
+ {
+ name = "lint_staged___lint_staged_8.1.0.tgz";
+ path = fetchurl {
+ name = "lint_staged___lint_staged_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.0.tgz";
+ sha1 = "dbc3ae2565366d8f20efb9f9799d076da64863f2";
+ };
+ }
+ {
+ name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+ path = fetchurl {
+ name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz";
+ sha1 = "924b5a3757153770bf1a8e3fbf74b8bbf3f9242e";
+ };
+ }
+ {
+ name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+ path = fetchurl {
+ name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz";
+ sha1 = "4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2";
+ };
+ }
+ {
+ name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+ path = fetchurl {
+ name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
+ url = "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz";
+ sha1 = "f1132167535ea4c1261102b9f28dac7cba1e03db";
+ };
+ }
+ {
+ name = "listr___listr_0.14.3.tgz";
+ path = fetchurl {
+ name = "listr___listr_0.14.3.tgz";
+ url = "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz";
+ sha1 = "2fea909604e434be464c50bddba0d496928fa586";
+ };
+ }
+ {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ path = fetchurl {
+ name = "load_json_file___load_json_file_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz";
+ sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
+ };
+ }
+ {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz";
+ sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+ };
+ }
+ {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ path = fetchurl {
+ name = "locate_path___locate_path_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
+ sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
+ };
+ }
+ {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ path = fetchurl {
+ name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
+ url = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
+ sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
+ };
+ }
+ {
+ name = "lodash.merge___lodash.merge_4.6.1.tgz";
+ path = fetchurl {
+ name = "lodash.merge___lodash.merge_4.6.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz";
+ sha1 = "adc25d9cb99b9391c59624f379fbba60d7111d54";
+ };
+ }
+ {
+ name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
+ path = fetchurl {
+ name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz";
+ sha1 = "bf2249886ce514cda112fae9218cdc065211fc9c";
+ };
+ }
+ {
+ name = "lodash___lodash_4.17.11.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.11.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
+ sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
+ };
+ }
+ {
+ name = "log_symbols___log_symbols_1.0.2.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz";
+ sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
+ };
+ }
+ {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ path = fetchurl {
+ name = "log_symbols___log_symbols_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz";
+ sha1 = "5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a";
+ };
+ }
+ {
+ name = "log_update___log_update_2.3.0.tgz";
+ path = fetchurl {
+ name = "log_update___log_update_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz";
+ sha1 = "88328fd7d1ce7938b29283746f0b1bc126b24708";
+ };
+ }
+ {
+ name = "loglevel_colored_level_prefix___loglevel_colored_level_prefix_1.0.0.tgz";
+ path = fetchurl {
+ name = "loglevel_colored_level_prefix___loglevel_colored_level_prefix_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz";
+ sha1 = "6a40218fdc7ae15fc76c3d0f3e676c465388603e";
+ };
+ }
+ {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ path = fetchurl {
+ name = "loglevel___loglevel_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz";
+ sha1 = "e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa";
+ };
+ }
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
+ {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ path = fetchurl {
+ name = "lru_cache___lru_cache_4.1.5.tgz";
+ url = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz";
+ sha1 = "8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd";
+ };
+ }
+ {
+ name = "make_plural___make_plural_4.3.0.tgz";
+ path = fetchurl {
+ name = "make_plural___make_plural_4.3.0.tgz";
+ url = "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz";
+ sha1 = "f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735";
+ };
+ }
+ {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ path = fetchurl {
+ name = "map_cache___map_cache_0.2.2.tgz";
+ url = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
+ sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+ };
+ }
+ {
+ name = "map_obj___map_obj_2.0.0.tgz";
+ path = fetchurl {
+ name = "map_obj___map_obj_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz";
+ sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
+ };
+ }
+ {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ path = fetchurl {
+ name = "map_visit___map_visit_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
+ sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+ };
+ }
+ {
+ name = "matcher___matcher_1.1.1.tgz";
+ path = fetchurl {
+ name = "matcher___matcher_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz";
+ sha1 = "51d8301e138f840982b338b116bb0c09af62c1c2";
+ };
+ }
+ {
+ name = "mem___mem_1.1.0.tgz";
+ path = fetchurl {
+ name = "mem___mem_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz";
+ sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
+ };
+ }
+ {
+ name = "messageformat_parser___messageformat_parser_1.1.0.tgz";
+ path = fetchurl {
+ name = "messageformat_parser___messageformat_parser_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-1.1.0.tgz";
+ sha1 = "13ba2250a76bbde8e0fca0dbb3475f95c594a90a";
+ };
+ }
+ {
+ name = "messageformat___messageformat_1.1.1.tgz";
+ path = fetchurl {
+ name = "messageformat___messageformat_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/messageformat/-/messageformat-1.1.1.tgz";
+ sha1 = "ceaa2e6c86929d4807058275a7372b1bd963bdf6";
+ };
+ }
+ {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ path = fetchurl {
+ name = "micromatch___micromatch_3.1.10.tgz";
+ url = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
+ sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+ };
+ }
+ {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ path = fetchurl {
+ name = "mimic_fn___mimic_fn_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+ sha1 = "820c86a39334640e99516928bd03fca88057d022";
+ };
+ }
+ {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ path = fetchurl {
+ name = "minimatch___minimatch_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
+ sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+ };
+ }
+ {
+ name = "minimist___minimist_0.0.8.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_0.0.8.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
+ sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+ };
+ }
+ {
+ name = "minimist___minimist_1.2.0.tgz";
+ path = fetchurl {
+ name = "minimist___minimist_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
+ sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+ };
+ }
+ {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ path = fetchurl {
+ name = "mixin_deep___mixin_deep_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz";
+ sha1 = "a49e7268dce1a0d9698e45326c5626df3543d0fe";
+ };
+ }
+ {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ path = fetchurl {
+ name = "mkdirp___mkdirp_0.5.1.tgz";
+ url = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
+ sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+ };
+ }
+ {
+ name = "ms___ms_2.0.0.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+ sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+ };
+ }
+ {
+ name = "ms___ms_2.1.1.tgz";
+ path = fetchurl {
+ name = "ms___ms_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
+ sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+ };
+ }
+ {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ path = fetchurl {
+ name = "mute_stream___mute_stream_0.0.7.tgz";
+ url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+ sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+ };
+ }
+ {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ path = fetchurl {
+ name = "nanomatch___nanomatch_1.2.13.tgz";
+ url = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
+ sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+ };
+ }
+ {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ path = fetchurl {
+ name = "natural_compare___natural_compare_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
+ sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+ };
+ }
+ {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ path = fetchurl {
+ name = "nice_try___nice_try_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
+ sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
+ };
+ }
+ {
+ name = "nopt___nopt_3.0.6.tgz";
+ path = fetchurl {
+ name = "nopt___nopt_3.0.6.tgz";
+ url = "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz";
+ sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9";
+ };
+ }
+ {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ path = fetchurl {
+ name = "normalize_package_data___normalize_package_data_2.4.0.tgz";
+ url = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+ sha1 = "12f95a307d58352075a04907b84ac8be98ac012f";
+ };
+ }
+ {
+ name = "npm_path___npm_path_2.0.4.tgz";
+ path = fetchurl {
+ name = "npm_path___npm_path_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz";
+ sha1 = "c641347a5ff9d6a09e4d9bce5580c4f505278e64";
+ };
+ }
+ {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ path = fetchurl {
+ name = "npm_run_path___npm_run_path_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
+ sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+ };
+ }
+ {
+ name = "npm_which___npm_which_3.0.1.tgz";
+ path = fetchurl {
+ name = "npm_which___npm_which_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz";
+ sha1 = "9225f26ec3a285c209cae67c3b11a6b4ab7140aa";
+ };
+ }
+ {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ path = fetchurl {
+ name = "number_is_nan___number_is_nan_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+ sha1 = "097b602b53422a522c1afb8790318336941a011d";
+ };
+ }
+ {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ path = fetchurl {
+ name = "object_assign___object_assign_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+ sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+ };
+ }
+ {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ path = fetchurl {
+ name = "object_copy___object_copy_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
+ sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+ };
+ }
+ {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ path = fetchurl {
+ name = "object_keys___object_keys_1.0.12.tgz";
+ url = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
+ sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
+ };
+ }
+ {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ path = fetchurl {
+ name = "object_visit___object_visit_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
+ sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+ };
+ }
+ {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+ sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+ };
+ }
+ {
+ name = "object.entries___object.entries_1.1.0.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz";
+ sha1 = "2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519";
+ };
+ }
+ {
+ name = "object.fromentries___object.fromentries_2.0.0.tgz";
+ path = fetchurl {
+ name = "object.fromentries___object.fromentries_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz";
+ sha1 = "49a543d92151f8277b3ac9600f1e930b189d30ab";
+ };
+ }
+ {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ path = fetchurl {
+ name = "object.pick___object.pick_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
+ sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+ };
+ }
+ {
+ name = "once___once_1.4.0.tgz";
+ path = fetchurl {
+ name = "once___once_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
+ sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+ };
+ }
+ {
+ name = "onetime___onetime_2.0.1.tgz";
+ path = fetchurl {
+ name = "onetime___onetime_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+ sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ };
+ }
+ {
+ name = "optionator___optionator_0.8.2.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
+ sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
+ };
+ }
+ {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ path = fetchurl {
+ name = "os_locale___os_locale_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz";
+ sha1 = "42bc2900a6b5b8bd17376c8e882b65afccf24bf2";
+ };
+ }
+ {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ path = fetchurl {
+ name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+ sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+ };
+ }
+ {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_finally___p_finally_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
+ sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+ };
+ }
+ {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz";
+ sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
+ };
+ }
+ {
+ name = "p_limit___p_limit_2.1.0.tgz";
+ path = fetchurl {
+ name = "p_limit___p_limit_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz";
+ sha1 = "1d5a0d20fb12707c758a655f6bbc4386b5930d68";
+ };
+ }
+ {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz";
+ sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+ };
+ }
+ {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ path = fetchurl {
+ name = "p_locate___p_locate_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
+ sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
+ };
+ }
+ {
+ name = "p_map___p_map_1.2.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz";
+ sha1 = "e4e94f311eabbc8633a1e79908165fca26241b6b";
+ };
+ }
+ {
+ name = "p_map___p_map_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_map___p_map_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz";
+ sha1 = "be18c5a5adeb8e156460651421aceca56c213a50";
+ };
+ }
+ {
+ name = "p_try___p_try_1.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz";
+ sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+ };
+ }
+ {
+ name = "p_try___p_try_2.0.0.tgz";
+ path = fetchurl {
+ name = "p_try___p_try_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz";
+ sha1 = "85080bb87c64688fa47996fe8f7dfbe8211760b1";
+ };
+ }
+ {
+ name = "parent_module___parent_module_1.0.0.tgz";
+ path = fetchurl {
+ name = "parent_module___parent_module_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz";
+ sha1 = "df250bdc5391f4a085fb589dad761f5ad6b865b5";
+ };
+ }
+ {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz";
+ sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
+ };
+ }
+ {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ path = fetchurl {
+ name = "parse_json___parse_json_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
+ sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+ };
+ }
+ {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ path = fetchurl {
+ name = "pascalcase___pascalcase_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
+ sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+ };
+ }
+ {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz";
+ sha1 = "0feb6c64f0fc518d9a754dd5efb62c7022761f4b";
+ };
+ }
+ {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ path = fetchurl {
+ name = "path_exists___path_exists_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
+ sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+ };
+ }
+ {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ path = fetchurl {
+ name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+ sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+ };
+ }
+ {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ path = fetchurl {
+ name = "path_is_inside___path_is_inside_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
+ sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+ };
+ }
+ {
+ name = "path_key___path_key_2.0.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
+ sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+ };
+ }
+ {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ path = fetchurl {
+ name = "path_parse___path_parse_1.0.6.tgz";
+ url = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
+ sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+ };
+ }
+ {
+ name = "path_type___path_type_2.0.0.tgz";
+ path = fetchurl {
+ name = "path_type___path_type_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz";
+ sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
+ };
+ }
+ {
+ name = "pify___pify_2.3.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
+ sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
+ };
+ }
+ {
+ name = "pify___pify_3.0.0.tgz";
+ path = fetchurl {
+ name = "pify___pify_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
+ sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+ };
+ }
+ {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ path = fetchurl {
+ name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
+ sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
+ };
+ }
+ {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ path = fetchurl {
+ name = "pinkie___pinkie_2.0.4.tgz";
+ url = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
+ sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_1.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz";
+ sha1 = "7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4";
+ };
+ }
+ {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
+ sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
+ };
+ }
+ {
+ name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
+ path = fetchurl {
+ name = "please_upgrade_node___please_upgrade_node_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz";
+ sha1 = "ed320051dfcc5024fae696712c8288993595e8ac";
+ };
+ }
+ {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ path = fetchurl {
+ name = "pluralize___pluralize_7.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz";
+ sha1 = "298b89df8b93b0221dbf421ad2b1b1ea23fc6777";
+ };
+ }
+ {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ path = fetchurl {
+ name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
+ url = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+ sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+ };
+ }
+ {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
+ sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+ };
+ }
+ {
+ name = "prettier_eslint_cli___prettier_eslint_cli_4.7.1.tgz";
+ path = fetchurl {
+ name = "prettier_eslint_cli___prettier_eslint_cli_4.7.1.tgz";
+ url = "https://registry.yarnpkg.com/prettier-eslint-cli/-/prettier-eslint-cli-4.7.1.tgz";
+ sha1 = "3d103c494baa4e80b99ad53e2b9db7620101859f";
+ };
+ }
+ {
+ name = "prettier_eslint___prettier_eslint_8.8.2.tgz";
+ path = fetchurl {
+ name = "prettier_eslint___prettier_eslint_8.8.2.tgz";
+ url = "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-8.8.2.tgz";
+ sha1 = "fcb29a48ab4524e234680797fe70e9d136ccaf0b";
+ };
+ }
+ {
+ name = "prettier___prettier_1.15.3.tgz";
+ path = fetchurl {
+ name = "prettier___prettier_1.15.3.tgz";
+ url = "https://registry.yarnpkg.com/prettier/-/prettier-1.15.3.tgz";
+ sha1 = "1feaac5bdd181237b54dbe65d874e02a1472786a";
+ };
+ }
+ {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ path = fetchurl {
+ name = "pretty_format___pretty_format_23.6.0.tgz";
+ url = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz";
+ sha1 = "5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760";
+ };
+ }
+ {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ path = fetchurl {
+ name = "process_nextick_args___process_nextick_args_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz";
+ sha1 = "a37d732f4271b4ab1ad070d35508e8290788ffaa";
+ };
+ }
+ {
+ name = "progress___progress_2.0.3.tgz";
+ path = fetchurl {
+ name = "progress___progress_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
+ sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+ };
+ }
+ {
+ name = "prop_types___prop_types_15.6.2.tgz";
+ path = fetchurl {
+ name = "prop_types___prop_types_15.6.2.tgz";
+ url = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz";
+ sha1 = "05d5ca77b4453e985d60fc7ff8c859094a497102";
+ };
+ }
+ {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ path = fetchurl {
+ name = "pseudomap___pseudomap_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz";
+ sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+ };
+ }
+ {
+ name = "pump___pump_3.0.0.tgz";
+ path = fetchurl {
+ name = "pump___pump_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
+ sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
+ };
+ }
+ {
+ name = "punycode___punycode_2.1.1.tgz";
+ path = fetchurl {
+ name = "punycode___punycode_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+ sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+ };
+ }
+ {
+ name = "quick_lru___quick_lru_1.1.0.tgz";
+ path = fetchurl {
+ name = "quick_lru___quick_lru_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz";
+ sha1 = "4360b17c61136ad38078397ff11416e186dcfbb8";
+ };
+ }
+ {
+ name = "ramda___ramda_0.26.1.tgz";
+ path = fetchurl {
+ name = "ramda___ramda_0.26.1.tgz";
+ url = "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz";
+ sha1 = "8d41351eb8111c55353617fc3bbffad8e4d35d06";
+ };
+ }
+ {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg_up___read_pkg_up_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
+ sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz";
+ sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
+ };
+ }
+ {
+ name = "read_pkg___read_pkg_4.0.1.tgz";
+ path = fetchurl {
+ name = "read_pkg___read_pkg_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz";
+ sha1 = "963625378f3e1c4d48c85872b5a6ec7d5d093237";
+ };
+ }
+ {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ path = fetchurl {
+ name = "readable_stream___readable_stream_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
+ sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
+ };
+ }
+ {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ path = fetchurl {
+ name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
+ url = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
+ sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
+ };
+ }
+ {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ path = fetchurl {
+ name = "regex_not___regex_not_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
+ sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+ };
+ }
+ {
+ name = "regexpp___regexpp_1.1.0.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz";
+ sha1 = "0e3516dd0b7904f413d2d4193dce4618c3a689ab";
+ };
+ }
+ {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
+ sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
+ };
+ }
+ {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ path = fetchurl {
+ name = "repeat_element___repeat_element_1.1.3.tgz";
+ url = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
+ sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+ };
+ }
+ {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ path = fetchurl {
+ name = "repeat_string___repeat_string_1.6.1.tgz";
+ url = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
+ sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+ };
+ }
+ {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ path = fetchurl {
+ name = "require_directory___require_directory_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+ sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+ };
+ }
+ {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ path = fetchurl {
+ name = "require_main_filename___require_main_filename_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
+ sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+ };
+ }
+ {
+ name = "require_relative___require_relative_0.8.7.tgz";
+ path = fetchurl {
+ name = "require_relative___require_relative_0.8.7.tgz";
+ url = "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz";
+ sha1 = "7999539fc9e047a37928fa196f8e1563dabd36de";
+ };
+ }
+ {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ path = fetchurl {
+ name = "require_uncached___require_uncached_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz";
+ sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
+ };
+ }
+ {
+ name = "reserved_words___reserved_words_0.1.2.tgz";
+ path = fetchurl {
+ name = "reserved_words___reserved_words_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz";
+ sha1 = "00a0940f98cd501aeaaac316411d9adc52b31ab1";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz";
+ sha1 = "26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
+ sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+ };
+ }
+ {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ path = fetchurl {
+ name = "resolve_from___resolve_from_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+ sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+ };
+ }
+ {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ path = fetchurl {
+ name = "resolve_url___resolve_url_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
+ sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+ };
+ }
+ {
+ name = "resolve___resolve_1.9.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.9.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz";
+ sha1 = "a14c6fdfa8f92a7df1d996cb7105fa744658ea06";
+ };
+ }
+ {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ path = fetchurl {
+ name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+ sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ };
+ }
+ {
+ name = "ret___ret_0.1.15.tgz";
+ path = fetchurl {
+ name = "ret___ret_0.1.15.tgz";
+ url = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
+ sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+ };
+ }
+ {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ path = fetchurl {
+ name = "rimraf___rimraf_2.6.3.tgz";
+ url = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
+ sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
+ };
+ }
+ {
+ name = "run_async___run_async_2.3.0.tgz";
+ path = fetchurl {
+ name = "run_async___run_async_2.3.0.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
+ sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+ };
+ }
+ {
+ name = "run_node___run_node_1.0.0.tgz";
+ path = fetchurl {
+ name = "run_node___run_node_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz";
+ sha1 = "46b50b946a2aa2d4947ae1d886e9856fd9cabe5e";
+ };
+ }
+ {
+ name = "rx_lite_aggregates___rx_lite_aggregates_4.0.8.tgz";
+ path = fetchurl {
+ name = "rx_lite_aggregates___rx_lite_aggregates_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz";
+ sha1 = "753b87a89a11c95467c4ac1626c4efc4e05c67be";
+ };
+ }
+ {
+ name = "rx_lite___rx_lite_4.0.8.tgz";
+ path = fetchurl {
+ name = "rx_lite___rx_lite_4.0.8.tgz";
+ url = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz";
+ sha1 = "0b1e11af8bc44836f04a6407e92da42467b79444";
+ };
+ }
+ {
+ name = "rxjs___rxjs_5.5.12.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_5.5.12.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz";
+ sha1 = "6fa61b8a77c3d793dbaf270bee2f43f652d741cc";
+ };
+ }
+ {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ path = fetchurl {
+ name = "rxjs___rxjs_6.3.3.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz";
+ sha1 = "3c6a7fa420e844a81390fb1158a9ec614f4bad55";
+ };
+ }
+ {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ path = fetchurl {
+ name = "safe_buffer___safe_buffer_5.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
+ sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+ };
+ }
+ {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "safe_regex___safe_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
+ sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+ };
+ }
+ {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ path = fetchurl {
+ name = "safer_buffer___safer_buffer_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+ sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+ };
+ }
+ {
+ name = "semver_compare___semver_compare_1.0.0.tgz";
+ path = fetchurl {
+ name = "semver_compare___semver_compare_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz";
+ sha1 = "0dee216a1c941ab37e9efb1788f6afc5ff5537fc";
+ };
+ }
+ {
+ name = "semver___semver_5.6.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.6.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz";
+ sha1 = "7e74256fbaa49c75aa7c7a205cc22799cac80004";
+ };
+ }
+ {
+ name = "semver___semver_5.5.0.tgz";
+ path = fetchurl {
+ name = "semver___semver_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz";
+ sha1 = "dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab";
+ };
+ }
+ {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_blocking___set_blocking_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+ sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+ };
+ }
+ {
+ name = "set_value___set_value_0.4.3.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_0.4.3.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz";
+ sha1 = "7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1";
+ };
+ }
+ {
+ name = "set_value___set_value_2.0.0.tgz";
+ path = fetchurl {
+ name = "set_value___set_value_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz";
+ sha1 = "71ae4a88f0feefbbf52d1ea604f3fb315ebb6274";
+ };
+ }
+ {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
+ sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+ };
+ }
+ {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
+ sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+ };
+ }
+ {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ path = fetchurl {
+ name = "signal_exit___signal_exit_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
+ sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+ };
+ }
+ {
+ name = "simple_git___simple_git_1.107.0.tgz";
+ path = fetchurl {
+ name = "simple_git___simple_git_1.107.0.tgz";
+ url = "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz";
+ sha1 = "12cffaf261c14d6f450f7fdb86c21ccee968b383";
+ };
+ }
+ {
+ name = "slash___slash_2.0.0.tgz";
+ path = fetchurl {
+ name = "slash___slash_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
+ sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
+ };
+ }
+ {
+ name = "slice_ansi___slice_ansi_0.0.4.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_0.0.4.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz";
+ sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
+ };
+ }
+ {
+ name = "slice_ansi___slice_ansi_1.0.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz";
+ sha1 = "044f1a49d8842ff307aad6b505ed178bd950134d";
+ };
+ }
+ {
+ name = "slice_ansi___slice_ansi_2.0.0.tgz";
+ path = fetchurl {
+ name = "slice_ansi___slice_ansi_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.0.0.tgz";
+ sha1 = "5373bdb8559b45676e8541c66916cdd6251612e7";
+ };
+ }
+ {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+ sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+ };
+ }
+ {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ path = fetchurl {
+ name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+ sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+ };
+ }
+ {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ path = fetchurl {
+ name = "snapdragon___snapdragon_0.8.2.tgz";
+ url = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
+ sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+ };
+ }
+ {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ path = fetchurl {
+ name = "source_map_resolve___source_map_resolve_0.5.2.tgz";
+ url = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz";
+ sha1 = "72e2cc34095543e43b2c62b2c4c10d4a9054f259";
+ };
+ }
+ {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ path = fetchurl {
+ name = "source_map_url___source_map_url_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
+ sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+ };
+ }
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
+ {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ path = fetchurl {
+ name = "spdx_correct___spdx_correct_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
+ sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
+ };
+ }
+ {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ path = fetchurl {
+ name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
+ sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
+ };
+ }
+ {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ path = fetchurl {
+ name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
+ sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+ };
+ }
+ {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ path = fetchurl {
+ name = "spdx_license_ids___spdx_license_ids_3.0.3.tgz";
+ url = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz";
+ sha1 = "81c0ce8f21474756148bbb5f3bfc0f36bf15d76e";
+ };
+ }
+ {
+ name = "split_string___split_string_3.1.0.tgz";
+ path = fetchurl {
+ name = "split_string___split_string_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
+ sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+ };
+ }
+ {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ path = fetchurl {
+ name = "sprintf_js___sprintf_js_1.0.3.tgz";
+ url = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+ sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+ };
+ }
+ {
+ name = "staged_git_files___staged_git_files_1.1.2.tgz";
+ path = fetchurl {
+ name = "staged_git_files___staged_git_files_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz";
+ sha1 = "4326d33886dc9ecfa29a6193bf511ba90a46454b";
+ };
+ }
+ {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ path = fetchurl {
+ name = "static_extend___static_extend_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
+ sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+ };
+ }
+ {
+ name = "string_argv___string_argv_0.0.2.tgz";
+ path = fetchurl {
+ name = "string_argv___string_argv_0.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz";
+ sha1 = "dac30408690c21f3c3630a3ff3a05877bdcbd736";
+ };
+ }
+ {
+ name = "string_width___string_width_1.0.2.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+ sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+ };
+ }
+ {
+ name = "string_width___string_width_2.1.1.tgz";
+ path = fetchurl {
+ name = "string_width___string_width_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+ sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+ };
+ }
+ {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ path = fetchurl {
+ name = "string_decoder___string_decoder_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+ sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+ };
+ }
+ {
+ name = "stringify_object___stringify_object_3.3.0.tgz";
+ path = fetchurl {
+ name = "stringify_object___stringify_object_3.3.0.tgz";
+ url = "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz";
+ sha1 = "703065aefca19300d3ce88af4f5b3956d7556629";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+ sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_4.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
+ sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+ };
+ }
+ {
+ name = "strip_ansi___strip_ansi_5.0.0.tgz";
+ path = fetchurl {
+ name = "strip_ansi___strip_ansi_5.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz";
+ sha1 = "f78f68b5d0866c20b2c9b8c61b5298508dc8756f";
+ };
+ }
+ {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ path = fetchurl {
+ name = "strip_bom___strip_bom_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
+ sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+ };
+ }
+ {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ path = fetchurl {
+ name = "strip_eof___strip_eof_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
+ sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+ };
+ }
+ {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+ sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+ };
+ }
+ {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+ sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+ };
+ }
+ {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_4.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz";
+ sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
+ };
+ }
+ {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ path = fetchurl {
+ name = "supports_color___supports_color_5.5.0.tgz";
+ url = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
+ sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+ };
+ }
+ {
+ name = "symbol_observable___symbol_observable_1.0.1.tgz";
+ path = fetchurl {
+ name = "symbol_observable___symbol_observable_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz";
+ sha1 = "8340fc4702c3122df5d22288f88283f513d3fdd4";
+ };
+ }
+ {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ path = fetchurl {
+ name = "symbol_observable___symbol_observable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
+ sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
+ };
+ }
+ {
+ name = "table___table_4.0.2.tgz";
+ path = fetchurl {
+ name = "table___table_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz";
+ sha1 = "a33447375391e766ad34d3486e6e2aedc84d2e36";
+ };
+ }
+ {
+ name = "table___table_5.1.1.tgz";
+ path = fetchurl {
+ name = "table___table_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/table/-/table-5.1.1.tgz";
+ sha1 = "92030192f1b7b51b6eeab23ed416862e47b70837";
+ };
+ }
+ {
+ name = "text_table___text_table_0.2.0.tgz";
+ path = fetchurl {
+ name = "text_table___text_table_0.2.0.tgz";
+ url = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
+ sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+ };
+ }
+ {
+ name = "through___through_2.3.8.tgz";
+ path = fetchurl {
+ name = "through___through_2.3.8.tgz";
+ url = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
+ sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+ };
+ }
+ {
+ name = "tmp___tmp_0.0.33.tgz";
+ path = fetchurl {
+ name = "tmp___tmp_0.0.33.tgz";
+ url = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+ sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+ };
+ }
+ {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ }
+ {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ path = fetchurl {
+ name = "to_object_path___to_object_path_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
+ sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+ };
+ }
+ {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ path = fetchurl {
+ name = "to_regex_range___to_regex_range_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
+ sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+ };
+ }
+ {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ path = fetchurl {
+ name = "to_regex___to_regex_3.0.2.tgz";
+ url = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
+ sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+ };
+ }
+ {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ path = fetchurl {
+ name = "trim_right___trim_right_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
+ sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+ };
+ }
+ {
+ name = "tslib___tslib_1.9.3.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.9.3.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
+ sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
+ };
+ }
+ {
+ name = "type_check___type_check_0.3.2.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.3.2.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
+ sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+ };
+ }
+ {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ path = fetchurl {
+ name = "typedarray___typedarray_0.0.6.tgz";
+ url = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
+ sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+ };
+ }
+ {
+ name = "typescript_eslint_parser___typescript_eslint_parser_16.0.1.tgz";
+ path = fetchurl {
+ name = "typescript_eslint_parser___typescript_eslint_parser_16.0.1.tgz";
+ url = "https://registry.yarnpkg.com/typescript-eslint-parser/-/typescript-eslint-parser-16.0.1.tgz";
+ sha1 = "b40681c7043b222b9772748b700a000b241c031b";
+ };
+ }
+ {
+ name = "typescript___typescript_2.9.2.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_2.9.2.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz";
+ sha1 = "1cbf61d05d6b96269244eb6a3bce4bd914e0f00c";
+ };
+ }
+ {
+ name = "union_value___union_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "union_value___union_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz";
+ sha1 = "5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4";
+ };
+ }
+ {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ path = fetchurl {
+ name = "unset_value___unset_value_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
+ sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+ };
+ }
+ {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ path = fetchurl {
+ name = "uri_js___uri_js_4.2.2.tgz";
+ url = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
+ sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+ };
+ }
+ {
+ name = "urix___urix_0.1.0.tgz";
+ path = fetchurl {
+ name = "urix___urix_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
+ sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+ };
+ }
+ {
+ name = "use___use_3.1.1.tgz";
+ path = fetchurl {
+ name = "use___use_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
+ sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+ };
+ }
+ {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ path = fetchurl {
+ name = "util_deprecate___util_deprecate_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
+ sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+ };
+ }
+ {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ path = fetchurl {
+ name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
+ url = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+ sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
+ };
+ }
+ {
+ name = "vue_eslint_parser___vue_eslint_parser_2.0.3.tgz";
+ path = fetchurl {
+ name = "vue_eslint_parser___vue_eslint_parser_2.0.3.tgz";
+ url = "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz";
+ sha1 = "c268c96c6d94cfe3d938a5f7593959b0ca3360d1";
+ };
+ }
+ {
+ name = "which_module___which_module_2.0.0.tgz";
+ path = fetchurl {
+ name = "which_module___which_module_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
+ sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+ };
+ }
+ {
+ name = "which___which_1.3.1.tgz";
+ path = fetchurl {
+ name = "which___which_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
+ sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
+ };
+ }
+ {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ path = fetchurl {
+ name = "wordwrap___wordwrap_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
+ sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+ };
+ }
+ {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+ sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+ };
+ }
+ {
+ name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+ path = fetchurl {
+ name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
+ url = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
+ sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
+ };
+ }
+ {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ path = fetchurl {
+ name = "wrappy___wrappy_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+ sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+ };
+ }
+ {
+ name = "write___write_0.2.1.tgz";
+ path = fetchurl {
+ name = "write___write_0.2.1.tgz";
+ url = "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz";
+ sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+ };
+ }
+ {
+ name = "y18n___y18n_3.2.1.tgz";
+ path = fetchurl {
+ name = "y18n___y18n_3.2.1.tgz";
+ url = "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz";
+ sha1 = "6d15fba884c08679c0d77e88e7759e811e07fa41";
+ };
+ }
+ {
+ name = "yallist___yallist_2.1.2.tgz";
+ path = fetchurl {
+ name = "yallist___yallist_2.1.2.tgz";
+ url = "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz";
+ sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+ };
+ }
+ {
+ name = "yargs_parser___yargs_parser_8.1.0.tgz";
+ path = fetchurl {
+ name = "yargs_parser___yargs_parser_8.1.0.tgz";
+ url = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz";
+ sha1 = "f1376a33b6629a5d063782944da732631e966950";
+ };
+ }
+ {
+ name = "yargs___yargs_10.0.3.tgz";
+ path = fetchurl {
+ name = "yargs___yargs_10.0.3.tgz";
+ url = "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz";
+ sha1 = "6542debd9080ad517ec5048fb454efe9e4d4aaae";
+ };
+ }
+ ];
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/ydiff/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/ydiff/default.nix
new file mode 100644
index 000000000000..510808fc4127
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/ydiff/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, pythonPackages, python3Packages, less, patchutils, git
+, subversion, coreutils, which }:
+
+with pythonPackages;
+
+buildPythonApplication rec {
+ pname = "ydiff";
+ version = "1.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
+ };
+
+ patchPhase = ''
+ substituteInPlace tests/test_ydiff.py \
+ --replace /bin/rm ${coreutils}/bin/rm \
+ --replace /bin/sh ${stdenv.shell}
+ substituteInPlace Makefile \
+ --replace "pep8 --ignore" "# pep8 --ignore" \
+ --replace "python3 \`which coverage\`" "${python3Packages.coverage}/bin/coverage3" \
+ --replace /bin/sh ${stdenv.shell} \
+ --replace tests/regression.sh "${stdenv.shell} tests/regression.sh"
+ patchShebangs tests/*.sh
+ '';
+
+ buildInputs = [ docutils pygments ];
+ propagatedBuildInputs = [ less patchutils ];
+ checkInputs = [ coverage coreutils git subversion which ];
+
+ checkTarget = if isPy3k then "test3" else "test";
+
+ meta = {
+ homepage = "https://github.com/ymattw/ydiff";
+ description = "View colored, incremental diff in workspace or from stdin";
+ longDescription = ''
+ Term based tool to view colored, incremental diff in a version
+ controlled workspace (supports Git, Mercurial, Perforce and Svn
+ so far) or from stdin, with side by side (similar to diff -y)
+ and auto pager support.
+ '';
+ license = lib.licenses.bsd3;
+ maintainers = with lib.maintainers; [ leenaars ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yj/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yj/default.nix
new file mode 100644
index 000000000000..94237abf89b7
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yj/default.nix
@@ -0,0 +1,27 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
+
+buildGoPackage rec {
+ pname = "yj";
+ version = "4.0.0";
+ rev = "d9a48607cc5c812e8cf4abccc8ad26f37ab51558";
+
+ goPackagePath = "github.com/sclevine/yj";
+
+ src = fetchgit {
+ inherit rev;
+ url = "https://github.com/sclevine/yj";
+ sha256 = "04irphzs6hp9hvyski29ad29ga1kis3h8bw7jqvmy2c2rkrrsh7x";
+ };
+
+ goDeps = ./deps.nix;
+
+ meta = with stdenv.lib; {
+ description = ''Convert YAML <=> TOML <=> JSON <=> HCL'';
+ license = licenses.asl20;
+ maintainers = with maintainers; [ Profpatsch ];
+ downloadPage = "https://github.com/sclevine/yj";
+ updateWalker = true;
+ inherit version;
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yj/deps.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yj/deps.nix
new file mode 100644
index 000000000000..0bfe7f5f5da3
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yj/deps.nix
@@ -0,0 +1,30 @@
+# 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/hashicorp/hcl";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hashicorp/hcl";
+ rev = "cf7d376da96d9cecec7c7483cec2735efe54a410";
+ sha256 = "0i1zhgpyvvgwkz74k8wd3sygsap1saqv37rw0j5vdpaazmpr1qkb";
+ };
+ }
+ {
+ 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/development/tools/yq-go/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yq-go/default.nix
new file mode 100644
index 000000000000..3d9d6cf0a0cb
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yq-go/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "yq-go";
+ version = "3.4.0";
+
+ src = fetchFromGitHub {
+ owner = "mikefarah";
+ rev = version;
+ repo = "yq";
+ sha256 = "1rvs27c5mz55zqq9c7yif0dms53bd30d8ylh45f3y3zgh82jihp8";
+ };
+
+ vendorSha256 = "0l5bhbp8dfq04hb4xcpx96ksfwx4xvk0pj5ma00rk3z913ikygcd";
+
+ doCheck = false;
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ postInstall = ''
+ for shell in bash fish zsh; do
+ $out/bin/yq shell-completion --variation $shell > yq.$shell
+ installShellCompletion yq.$shell
+ done
+ '';
+
+ meta = with lib; {
+ description = "Portable command-line YAML processor";
+ homepage = "https://mikefarah.gitbook.io/yq/";
+ license = [ licenses.mit ];
+ maintainers = [ maintainers.lewo ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/yuicompressor/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/yuicompressor/default.nix
new file mode 100644
index 000000000000..70160c1ce664
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/yuicompressor/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, makeWrapper, jre }:
+
+stdenv.mkDerivation rec {
+ pname = "yuicompressor";
+ version = "2.4.8";
+
+ src = fetchurl {
+ url = "https://github.com/yui/yuicompressor/releases/download/v${version}/${pname}-${version}.jar";
+ sha256 = "1qjxlak9hbl9zd3dl5ks0w4zx5z64wjsbk7ic73r1r45fasisdrh";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+ buildInputs = [ jre ];
+
+ buildCommand = ''
+ mkdir -p $out/{bin,lib}
+ ln -s $src $out/lib/yuicompressor.jar
+ makeWrapper ${jre}/bin/java $out/bin/yuicompressor --add-flags \
+ "-cp $out/lib/yuicompressor.jar com.yahoo.platform.yui.compressor.YUICompressor"
+ '';
+
+ meta = with stdenv.lib; {
+ description = "A JavaScript and CSS minifier";
+ homepage = "http://yui.github.io/yuicompressor/";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ jwiegley ];
+ platforms = platforms.all;
+ };
+}